第6章 Linux的文件权限与目录配置
用户与用户组
Linux文件的所有者概念包括:所有者,用户组,其他人。
系统上的账户与一般身份用户存放在/etc/passwd,个人密码记录在/etc/shadow下,组名放在/etc/group下。
Linux文件权限概念
Linux文件属性
查看文件属性,可以使用ls指令,如下:
dr-xr-xr-x. 17 root root 4096 6月 27 16:16 . dr-xr-xr-x. 17 root root 4096 6月 27 16:16 .. lrwxrwxrwx. 1 root root 7 6月 24 19:10 bin -> usr/bin dr-xr-xr-x. 4 root root 4096 6月 27 13:25 boot drwxr-xr-x. 20 root root 3480 6月 27 16:16 dev drwxr-xr-x. 141 root root 8192 6月 27 16:15 etc drwxr-xr-x. 3 root root 19 6月 24 19:34 home lrwxrwxrwx. 1 root root 7 6月 24 19:10 lib -> usr/lib lrwxrwxrwx. 1 root root 9 6月 24 19:10 lib64 -> usr/lib64 drwxr-xr-x. 2 root root 6 8月 12 2015 media drwxr-xr-x. 2 root root 6 8月 12 2015 mnt drwxr-xr-x. 3 root root 15 6月 24 19:28 opt dr-xr-xr-x. 229 root root 0 6月 28 2016 proc -rw-r--r--. 1 root root 232793 6月 27 16:16 .readahead dr-xr-x---. 17 root root 4096 6月 27 16:16 root drwxr-xr-x. 38 root root 1160 6月 27 16:16 run lrwxrwxrwx. 1 root root 8 6月 24 19:10 sbin -> usr/sbin drwxr-xr-x. 2 root root 6 8月 12 2015 srv dr-xr-xr-x. 13 root root 0 6月 27 16:15 sys drwxrwxrwt. 25 root root 4096 6月 27 16:27 tmp drwxr-xr-x. 13 root root 4096 6月 24 19:10 usr drwxr-xr-x. 21 root root 4096 6月 28 2016 var
文件属性包含七个部分:文件权限、连接数、文件所有者、文件所属用户组、文件大小、最后修改时间、文件名。
文件权限的第一个字母含义如下:
d:目录
-:文件
l:连接文件
b:可供存储的接口设备
c:串行端口设备
文件权限的后9个字母分为三组,分别代表文件所有者权限、同用户组的权限、其他非本用户组的权限,r表示可读,w表示可写,x表示可执行,-表示没有该权限。
改变文件属性和权限
chgrp:改变文件所属用户组
chgrp [-R] dirname/filename ...
-R : 进行递归更改,即连同子目录下的所有文件、目录
举例:chgrp users install.log 表示将install.log文件的用户组改为users,前提是/etc/group存在该用户组。
chown:改变文件所有者
chown [-R] 帐号名称 文件或目录
chown [-R] 帐号名称:组名 文件或目录
-R : 进行递归更改,即连同子目录下的所有文件、目录
chmod:改变文件权限
chmod [-R] xyz 文件或目录
使用数字代表权限:
r:4
w:2
x:1
比如,更改权限为-rwxrwx---,则指令为 chmod 770 filename
chmod还可以通过符号类型改变文件权限:
使用u,g,o,a表示用户,用户组,其他人,所有人,举例如下:
chmod u=rwx,go=rx .bashrc 使用‘=’来为不同的身份设置权限
chmod a+w .bashrc 使用‘+’来为某个身份添加权限
chmod a-w .bashrc 使用‘-’来为某个身份删除权限
使用‘=’时,未涉及的权限默认为无此权限,使用‘+’和‘-’时,未涉及的权限默认不更改。
目录与文件的权限意义
权限对于文件的重要性
r:可以读取文件的实际内容
w:可以编辑、新增或修改文件内容(但不含删除文件)
x:可以被系统执行
权限对于目录的重要性
r:具有读取目录结构列表的权限
w:具有更改结构目录列表的权限,包括建立新的文件和目录、删除已有的文件和目录、重命名已有文件和目录、转移该目录的文件和目录位置。
x;用户可以进入该目录,例如通过cd dir转入到一个目录的权限
注意:当用户具有r权限而不具有x权限时,是无法读到该目录文件。
用户A拥有dir目录的rwx权限,dir目录下有个文件b,A对该文件没有任何权限。这种情况下,因为A拥有对该目录的完整权限,虽然不能更改、读取b文件,但却可以删除b文件。
这意味着用户能否删除一个文件,不取决于文件权限,而是由文件上层目录的权限决定。当文件上层目录对用户具有w权限时,便可以删除任意权限的文件。
Linux目录配置
目录配置标准
/(root,根目录)
/bin:放置执行文件,放置的是单用户维护模式下也能被操作的指令,包括cat、chmod、chown、date、mv、mkdir、cp、bash (必须放在根目录)
/boot:放置开机会使用的文件
/dev:任何设备和接口设备都是以文件形式存放在该目录(必须放在根目录)
/etc:几乎所有配置文件都存放在该目录(必须放在根目录)
/home:用户的主文件夹
/lib:开机时用到的函数库,以及在/bin、/sbin下命令调用的函数库(必须放在根目录)
/media:放置可删除设备,包括软盘、光盘、DVD都挂在这
/mnt:暂时挂在额外设备
/opt:第三方软件放置的目录
/root:系统管理员的主文件夹
/sbin:开机过程所需的命令(必须放在根目录)
/srv:服务所需数据目录
/tmp:一般用户暂时放置文件的地方,任何人都能访问。
/usr(unix 软件资源)
放置可分享和不可变动的数据,软件默认安装在该目录。
/var
存放缓存,登录文件以及某些软件运行产生的文件。