文件的特殊权限:SUID,SGID,SBIT
Set UID
- SUID权限只用于二进制文件
- 运行者必须有X权限
- 运行者在程序运行过程(run-time)中具有二进制文件拥有者(owner)的权限
例子:Linux系统中所有的密码都记录在/etc/shadow
里,这个文件的权限是[r-------- 1 root root]
也就是只有root可以读和强制写入,但是一般用户是怎么修改自己的密码呢?一般用户通过运行passwd
来修改密码,而passwd
的权限是 [rwsr-xr-x 1 root root]
。首先others有执行权限,owner是root,所以普通用户在运行这个命令时会暂时获得root权限以至于可以修改/etc/shadow
。
Set GID
- SGID权限可用于二进制文件
- 运行者必须有X权限
- 运行者在程序运行过程(run-time)中会获得该程序群组的权限。
和SUID的意思差不多
- SGID可用于目录
- 使用者对目录有RX权限(可以cd进去)
- 使用者在此目录下的有效群组(effective group)会变成该目录的群组
例子:若使用者在该目录下新建文件,那么该文件的群组将和这个目录的群组一样。
Sticky Bit
- 只针对目录有效
- 使用者对该目录有WX权限
- 使用者创建的文件或目录只有自己和root可以删除
例子:/tmp
的权限是 [drwxrwxrwt]
这意味着任何人都可以在该目录新建、修改文件,但是只能删除自己的文件,不能删除别人的文件。
权限配置
chmod的三个数字前再加一个数字:4是SUID,2是SGID,1是SBIT。
例子:chmod 6755 test
最前边的6就是给test加入SUID和SGID权限。