单纯对文件位置的 rwx 权限肯定不能满足我们对安全、便捷工作的需求,所以便有了 SUID 与 SGID 的特殊权限机制。
SUID
- 范围 : 二进制的可执行的文件
- 作用 : 临时拥有所有者的权限
SGID
- 范围 : 目录或者拥有可执行权限的文件
- 作用 : 继承目录所属组
SBIT ( STICKY )
- 范围 : 目录
- 作用 : 只有 root 用户和文件拥有者有权删除目录中的文件。
SUID
比如:
-rwsr-xr-x. 1 root root 27832 Jan 30 2014 /usr/bin/passwd
所有用户都可以执行用于修改用户密码的 passwd 命令,但用户密码保存在 /etc/shadow 文件中,默认权限是 000 即除了超级用户 root 外的所有用户都没有查看或编辑该文件的权限,所以对 passwd 命令加上SUID 权限位,则可让普通用户临时获得程序所有者的身份,即以 root 用户的身份将变更的密码信息写入到 shadow 文件中。
---s--x--x. 1 root root 130712 Sep 1 2015 sudo
SGID:
功能一:让执行者临时拥有属组的权限(对拥有执行权限的二进制程序设置)
举例:
-r-xr-sr-x. 1 root tty
-rwxr-sr-x. 1 root tty
15344 Jan 27 2014 wall
19536 Aug 21 2015 write
功能二:在该目录中创建的文件自动继承此目录的用户组(只可以对目录设置)
比如:我们将某个部门的工作目录给予了 SGID 权限,这样所有人创建的文件都归相同的工作组,这样方便以后的管理。
SBIT(Sticky Bit):
比如:
drwxrwxrwt. 7 root root 4096 Jun 22 13:20 /tmp
一般老师希望学生可以将作业上传到某个特定目录 —— 但为了避免某些小破坏份子,想限制删除其他人文件的话,那就要设置 SBIT 位了,当然也可以叫做特殊权限位之粘滞位。