共计 959 个字符,预计需要花费 3 分钟才能阅读完成。
linux 系统内有档案有三种身份 u: 拥有者 g: 群组 o: 其他人
这些身份对于文档常用的有下面权限:
r:读权限,用户可以读取文档的内容,如用 cat,more 查看
w:写权限,用户可以编辑文档
x:该目录具有可以被系统执行的权限
除了读写执行权限外系统还支持强制位(s 权限)和粘滞位(t 权限)
s 权限:设置使文件在执行阶段具有文件所有者的权限,相当于临时拥有文件所有者的身份. 典型的文件是 passwd. 如果一般用户执行该文件, 则在执行过程中, 该文件可以获得 root 权限, 从而可以更改用户的密码.
ls -al /usr/bin/passwd
-rwsr-xr-x 1 pythontab pythontab 32988 2018-03-16 14:25 /usr/bin/passwd
我们可以通过字符模式设置 s 权限:chmod a+s filename,也可以使用绝对模式进行设置:
设置 s u i d:将相应的权限位之前的那一位设置为 4;
设置 g u i d:将相应的权限位之前的那一位设置为 2;
两者都置位:将相应的权限位之前的那一位设置为 4 +2=6。
注意:在设置 s 权限时文件属主、属组必须先设置相应的 x 权限,否则 s 权限并不能正真生效(c h m o d 命令不进行必要的完整性检查,即使不设置 x 权限就设置 s 权限,chmod 也不会报错,当我们 ls - l 时看到 rwS,大写 S 说明 s 权限未生效)
t 权限:要删除一个文档,您不一定要有这个文档的写权限,但您一定要有这个文档的上级目录的写权限。也就是说,您即使没有一个文档的写权限,但您有这个文档的上级目录的写权限,您 也能够把这个文档给删除,而假如没有一个目录的写权限,也就不能在这个目录下创建文档。
怎样才能使一个目录既能够让任何用户写入文档,又不让用户删除这个目录下他人的文档,t 权限就是能起到这个作用。t 权限一般只用在目录上,用在文档上起不到什么作用。
在一个目录上设了 t 权限位后,(如 /home,权限为 1777) 任何的用户都能够在这个目录下创建文档,但只能删除自己创建的文档 (root 除外),这就对任何用户能写的目录下的用户文档 启到了保护的作用。
可以通过 chmod +t filename 来设置 t 权限