Linux鸟哥-第五章:Linux的文件权限与目录配置
一、Linux文件权限
Linux文件属性
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TKB07VxZ-1585567423886)(C:\Users\lee\Desktop\linux\1文件属性示意图.png)]
Linux文件属性示意图如上图所示,下面逐一对其进行解释:
-
文件类型权限:
Linux文件的基本权限有9个,分别是拥有者(owner)、所属群组(group)、其他人(others),三种身份各有自己的读(read)、写(write)、执行权限(execute)权限。
权限字符 — r w x r w x — — — 字符位置 1 2 3 4 5 6 7 8 9 10
[第1位字符]:第一个字符代表这个文件是目录、文件或者链接文件等:
[d] 代表目录,如上图中的
.tmp
[-]代表文件,如上图中的
.tcshrc
[l]代表连接文件
[b]代表可按块随机读写的设备
[c]代表设备文件的可供存储的周边设备,例如键盘、鼠标等
[第2-9位字符]:以三个为一组,且均为
[rwx]
三个参数的组合,其中r
代表可读(read)、w
代表可写(write)、x
代表可执行(execute),并且这三个权限的位置不会变。若没有权限,则以——
代替: 其中,[第2-4位]代表文件拥有者即用户对此文件的权限,[第5-7位]代表用户所属用户组对此文件的权限,[第8-10位]代表其他人(others)对此文件的权限
-
连接数
每个文件都会将它的权限与属性记录到文件系统的inode中,连接数则代表有多少文件名连接到此节点
-
用户
代表此文件或者目录的拥有者账号
当需要对此文件或目录所属的用户进行更改时,可进行如下操作
chown [-R] 账号名 文件或目录
但是,前提是
用户名
必须在/etc/passwd
文件中存在。 -
用户组
相同用户组下对此文件或目录的权限都一致。
当需要对此文件或目录所属的用户组进行更改时,可执行如下操作
chgrp 用户组名 文件名或目录
但是,前提是
用户组名
必须在/etc/group
文件中存在,kfk代表要修改的用户组名。 -
修改文件权限
权限数字对照表 数值 r 4 w 2 x 1
修改权限的命令可以执行如下操作:
chmod [-R] xyz 文件目录
当权限为
[-rwxrwx---]
,数字则是:owner =rwx=4+2+1=7 group =rwx=4+2+1=7 others =---=0+0+0=0
因此,修改
.bashrc
文件的权限的命令为chmod 770 .bashrc
-
文件大小
默认单位为Bytes
-
修改日期
此日期为最近创建或修改的日期
-
文件名
当文件名前面多一个
[.]
时,则代表此文件为隐藏文件,可以用ls -a
来查看。
二、Linux目录配置
Linux目录配置的依据——FHS
FHS
(Filesystem Hierarchy Standard)
FHS
依据文件系统使用的频繁是否与是否允许用户随意修改,将目录定义为四种交互作用的形态,如下面的表格所示:
可分享(shareable) | 不可分享(unshareable) | |
---|---|---|
不变(static) | /usr(软件存放处) | /etc(配置文件) |
/opt(第三方辅助软件) | /boot(启动与内核文件) | |
可变动(variable) | /var/mail(用户邮箱) | /var/run(程序相关) |
/var/spool/news(新闻组) | ‘’/var/lock(程序相关) |
FHS
定义了三层目录:
- /(root,根目录),与启动系统有关
- /usr(unix software resource):与软件安装/执行有关
- /var(variable):与系统运行过程有关
1.根目录(/)的意义与内容
第一部分:FHS要求必须存在的目录 | 应放置文件内容 |
---|---|
/bin | 系统存放执行文件的目录,主要由cat 、chmod 、chown 、date 、mv 、mkdir 、cp 、bash 等常用的命令 |
/boot | 存放启动时会用到的文件,包括Linux内核文件以及启动选项与启动所需配置文件 |
/dev | 设备与接口设备都是以文件的形式存在这个目录当中,主要由/dev/null 、dev/zero 、/dev/tty 、/dev/loop* 、/dev/sd* 等 |
/etc | 配置文件放在此目录,例如人员的账号密码文件、各种服务的启动文件等。比较重要的文件有:/etc/modprobe.d/、/etc/password、/etc/fstab、/etc/issue等 |
/lib | 放置的是系统在启动时会用到的函数库,以及在/bin或/sbin下面的命令会调用的函数库 |
/media | 放置的是可删除的设备 |
/opt | 第三方辅助软件放置的目录 |
/run | 放置系统启动后产生的各项信息 |
/sbin | 放置系统启动、修复、还原系统所需要的命令 |
/tmp | 临时文件目录 |
/usr | 第二层FHS设置 |
/var | 第二层FHS设置 |
第二部分:FHS建议可以存在的目录 | 应放置文件内容 |
---|---|
/home | 系统默认的用户家目录, 当新增一个一般用户账号时,默认的用户家目录会规范到这里来。~:代表目前这个用户的家目录 |
/lib | 用来存放与/lib不同格式的二进制函数库,例如支持64位的/lib64函数库 |
/root | 系统管理员(root)的家目录, |
2./usr的意义与内容
/usr是 UNIX Software Resource
的缩写,也就是Unix
操作系统软件资源放置的目录,而不是用户的数据。因此,FHS建议所有的软件开发者应该将他们的数据合理地放置到这个目录下的子目录,不要自行建立该软件自己独立的目录。一般而言,/usr
的子目录建议包含下面这些:
第一部分:FHS要求必须存在的目录 | 应放置文件的内容 |
---|---|
/usr/bin/ | CentOS 7已经将全部的用户命令放置到/bin下,使用连接文件的方式将/bin连接到此处。/usr/bin与/bin是一模一样的,FHS要求此目录下不应该有子目录 |
/usr/lib/ | 与/lib相同,/lib也是连接到此处 |
/usr/local/ | 系统管理员在本机上安装自己下载的软件,便于管理建议安装在此。 |
/usr/sbin/ | 非系统正常运行需要的系统命令 |
/usr/share/ | 放置只读的数据文件,包括共享文件,几乎都是文本文件。常见的子目录:/usr/share/man:在线帮助文件;/usr/share/doc:软件的说明文档;/usr/share/zoneinfo:与时区有关的时区文件 |
第二部分:FHS建议可以存在的目录 | 应放置的文件内容 |
---|---|
/usr/games/ | 与游戏比较相关的数据放置处 |
/usr/include/ | c/c++等程序语言的头文件(headrer)与包含文件(include)放置处。当以Tarbal方式(*tar.gz的方式安装软件)安装某些程序时,会使用到里面的许多文件 |
/usr/libexec/ | 某些不被一般用户常用的执行文件或脚本等,例如,大部分x窗口下的操作命令,很多是放置在此目录下。 |
/usr/src | 一般源代码建议放置在这里 |
3./var的意义与内容
/usr
是安装时会占用比较大硬盘容量的目录,/var
则是系统运行之后才会渐渐占用硬盘容量的目录。/var
目录主要针对经常性变动的文件,包括缓存(cache)、日志文件(log file)以及某些软件运行时所产生的文件,包括程序文件(lock file、run file),或Mysql数据库的文件等。常见的子目录有:
第一部分:FHS要求必须存在的目录 | 应放置文件内容 |
---|---|
/var/chche | 应用程序本身运行过程中会产生的一些缓存 |
/var/lib | 应用程序执行过程中,需要使用到的数据文件放置的目录。例如,Mysql的数据库放置到/var/lib/mysql中 |
/var/lock | 对某些设备或者是文件资源加锁的文件,防止运行冲突。已经挪到—>/run/lock中。 |
/var/log | 日志文件放置的目录,包括/var/log/message、/var/log/wtmp(记录登陆信息)等 |
/var/mail | 放置个人电子邮箱的目录,这个目录也被放置到/var/spool/mail/目录中,通常这两个目录互为连接文件。 |
/var/run | 某些程序或者是服务启动之后,会将它们的PID放置在这个目录下,与/run相同,互为连接。 |
/var/spool/ | 放置等待其他程序使用的队列数据,使用完毕会被删除 |
三、重点回顾
- Linux的每个文件中,可以分别赋予用户、用户组与其他人三种身份的rwx权限
- 用户组最有用的功能之一就是:当在协同工作的时候,每个账号都可以有多个用户组的支持
- 利用
ls -l
显示的文件属性中,文件权限属性共有10位,第1位是文件类型,接下来三个为一组共三组,为用户、用户组、其他人的权限,权限有r、w、x三种 - 如果文件名前多一个
.
,则代表这个文件为隐藏文件 - 如果需要
root
用户的权限时,可以使用su —
来切换身份,操作完毕时,使用exit离开su
的命令环境 - 更改文件所属用户组,可以使用
chgrp
,修改文件的拥有者可用chown
,修改文件的权限可用chmod
- chmod修改权限的方法由两种,分别是符号法与数字法,数字法中的
r、w、x
数字分别为4/2/1 - 对于文件而言,权限的功能为:
r:
可读取此文件的实际内容,如读取文本文件的文字内容等w:
可以编辑、新增或是修改文件的内容(但是不含删除该文件)x:
该文件具有可以被系统执行的权限
- 对于目录而言,权限的功能为:
r:
读取目录中的内容w:
修改目录中的内容x:
访问目录
- 要开放目录给任何人浏览时,应该至少给予
r
及x
的权限,但是w
的权限不能随便给 - 是否读取到某个文件的内容,跟该文件所在的目录也有关系(至少需要由
x
可执行权限) - FHS制定出来的四种目录为:shareble、unshareable、static、variable等四类
- FHS所定义的三层主目录为:/、/var、/usr三层
- 绝对路径为从
根目录/
开始写起,否则就是相对路径