特殊权限、FACL访问控制列表
一、特殊权限
1、什么是特殊权限?
特殊权限指的是除常见的rwx之外的权限,它们可以完成普通权限难以实现的操作,分辨它们也很容易,它们会覆盖在文件权限位的执行位x,通常就是s、t偶尔会出现S、T,出现大写的情况下就是文件本身没有执行权限x,有执行权限就是小写了,s出现在所有者权限中那就是SUID出现在所属组权限中那就是SGID,SBIT权限也就是t会出现在其他人的执行权限上。
2、SUID(SetUID)
- 对于一个可执行的文件授予SUID权限后,普通用户在执行该可执行文件时,临时获得该文件所有者的身份,权限只在程序执行过程中有效,程序执行完后用户恢复原有身份。
- SetUID权限将会赋予在文件权限所有者的执行权限x位上,所有者的x权限位将会变成s。
- 设置SetUID权限格式: chmod u+s 文件名
- 去除SetUID权限格式: chmod u-s 文件名
示例:
有个很明显的例子:
passwd命令 这个命令用于修改用户密码
我们查看它的详细属性的时候可以看到它的执行权限位为s
它就具有SUID权限 所以普通用户可以用它来修改自己的用户密码
[root@jiangjiang /]# which passwd
/usr/bin/passwd
[root@jiangjiang /]# ll /usr/bin/passwd
-rwsr-xr-x. 1 root root 27832 6月 10 2014 /usr/bin/passwd
我们都知道普通用户用cat命令无法查看/etc/gshadow文件
[root@jiangjiang /]# which cat //查看cat命令目录
/usr/bin/cat
[root@jiangjiang /]# chmod u+s /usr/bin/cat //赋予cat命令SUID权限
[root@jiangjiang /]# ll /usr/bin