特殊的权限
文件权限除了r 、w 、x 外还有s 、t 、i 、a 权限:
s :文件属主和组设置SUID 和GUID ,文件在被设置了s 权限后将以root 身份执行。 在设置s 权限时文件属主、属组必须先设置相应的x 权限,否 则s 权限并不能正真生效(c
h m o d 命令不进行必要的完整性检查,即使不设置x 权限就设置s 权限,chmod 也不会报错,当我们ls
-l 时看到rwS ,大写S 说明s 权限未生效)。Linux 修改密码的passwd 便是个设置了SUID 的程序,普通用户无读写/etc/shadow 文件 的权限确可以修改自己的密码。
ls -al /usr/bin/passwd
-rws r-xr-x 1 root root 32988 2008-12-08 17:17
/usr/bin/passwd
我们可以通过字符模式设置s 权限:chmod a+s filename ,也可以使用绝对模式进行设置:
设置s u i d :将相应的权限位之前的那一位设置为4 ;
设置g u i d :将相应的权限位之前的那一位设置为2 ;
两者都置位:将相应的权限位之前的那一位设置为4+2=6 。
如:chmod 4 764
filename // 设置SUID
t :设置粘着位,一个文件可读写的用户并一定相让他有删除此文件的权限,如果文件设置了t 权限则只有文件所有者和root 有删除文件的权限 ,通过chmod +t filename 来设置t 权限。
i :不可修改权限 例:chattr u+i filename 则filename 文件就不可修改,无论任何人,如果需要修改需要先删除i 权限,用chattr -i filename 就可以了。查看文件是否设置了i 权限用lsattr filename 。
a :只追加权限,
对于日志系统很好用,这个权限让目标文件只能追加,不能删除,而且不能通过编辑器追加。可以使用chattr +a 设置追加权限。
Drwx rws --t abc1 abc
(abc1可做任何操作 ,abc 组可添加 )
为什么普通用户无法运行 mount 命令
Mount 命令其实已经有 s 权限,只是普通用户对硬件设备没权限。可用 chmod 命令赋予其权限。