Linux文件,除了rwx这些权限外,还有一些特殊的权限,如rws、rwt。
1、s权限(setuid)
1.1 设置方法:chmod u+s
该位可以让普通用户以root用户的角色运行只有root帐号才能运行的程序或命令。
s:文件属主和组设置SUID和GUID,文件在被设置了s权限后将以root身份执行。
在设置s权限时文件属主、属组必须先设置相应的x权限,否则s权限并不能正真生效。
1.2 必要性
Linux修改密码的passwd便是个设置了SUID的程序,普通用户无读写/etc/shadow文件的权限确可以修改自己的密码。
这里如果没有了s权限,那么普通用户只有通过root来修改密码,这样root就知道了我普通用户的密码,这样是不行的。如果给用户设置成rw权限,那么用户就可以通过删除/etc/shadow里的root的密码,来让root无密码,可直接登陆。这样就会造成极大的风险。
2、t权限(粘滞位)
2.1 设置方法:chmod u+t
2.2 必要性
一个文件可读写的用户,不一定想让他有删除此文件的权限。
如果文件设置了t权限,则只用属主和root有删除文件的权限。
同样的,当没有x权限的时候,为大写T
设置粘滞位的文件,只能由以下账户删除:
-超级管理员
-该目录的所有者
-该文件的所有者
3、其他特殊权限
3.1 i权限(不可修改)
设置方法:chattr u+i
设置后就不可修改,无论任何人。
如果需修改需先删除i权限,用:chattr -i
查看文件是否设置了i权限:lsattr
3.2 a权限(只可追加)
设置方法:chattr +a
对于日志系统很好用,这个权限让目标文件只能追加,不能删除,而且不能通过编辑器追加。