假设回显信息为 ①-②rws③r-x④r-x ⑤1 ⑥root ⑦root ⑧430540 ⑨Dec 20 18:27 ⑩/usr/sbin/passwd ,现在逐一分析其内容。
①. 首字符-,表示该文件为普通文件。
-,普通文件;
d,目录文件;
l,符号链接;
c,字符设备文件;
b,字节设备文件;
p,先进先出文件;
s,套接字文件。
②. 第2~4个字符,表示所有者(owner)的权限
③. 第5~7个字符,表示所属组(group)的权限
④. 第8~10个字符,表示其他用户(other)的权限
⑤. 第11个字符,表示硬链接数
⑥. 是文件所有者的用户名称(owner)
⑦. 是文件所属组的用户组名称(group)
⑧. 是文件大小,以块为单位,通过 ls -lh 则会以KB,MB作单位
⑨. 是最后修改日期
⑩. 是文件或目录的绝对路径
从上述内容我们可以得知Linux下的权限角色有三种,分别是所有者(owner)、所属组(group)和其他用户(other)。
[a]. 符号表示法
普通权限:
r,读权限; w,写权限;x,可执行权限。
特殊权限:
SUID权限只能设置在②中,s表示二进制可执行文件同时拥有SUID权限和x可执行权限;S表示二进制可执行文件拥有SUID权限但没有x可执行权限。
SGID权限只能设置在③中,s表示二进制可执行文件或目录同时拥有SGID权限和x可执行权限;S表示二进制可执行文件或目录拥有SGID权限但没有x可执行权限。
SBIT权限只能设置在④中,t表示目录同时拥有SBIT权限和x可执行权限;T表示目录拥有SBIT权限但没有x可执行权限。
[b]. 数字表示法 ----这种了解一下,我看centos是使用的上面的一种,
数字表示法采用二进制形式计算,八进制形式设置的方式。
二进制形式计算,1代表有权限,0代表无权限:
所有者 所属组 其他用户
SUID SGID SBIT R W X R W X R W X
1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0
然后每三位为一组转为八进制,例如现在二进制形式为100111101101,那么转为八进制则为4755。
命令1:
chmod a=rwx file
和
chmod 777 file
这两个是一样的,是赋予所有的权限,
命令2:
chmod -R 777 static
这是递归把文件夹下面的所有的权限都变成777