三种特殊权限简介
SUID
当一个设置了SUID 位的可执行文件被执行时,该文件将以所有者的身份运行,也就是说无论谁来执行这个文件,他都有文件所有者的特权。
如果所有者是 root 的话,那么执行人就有超级用户的特权了。
常见用例:/etc/passwd 文件有s健位,所以每个普通用户可以passwd修改自己的密码
SGID
当一个设置了SGID 位的可执行文件运行时,该文件将具有所属组的特权, 任意存取整个组所能使用的系统资源。
若一个目录设置了SGID,则所有被复制到这个目录下的文件, 其所属的组都会被重设为和这个目录一样,除非在复制文件时加上-p (preserve,保留文件属性)的参数,才能保留原来所属的群组设置。
一般常用在共享目录权限控制
sticky-bit
对一个目录设置了sticky-bit之后,存放在该目录的文件仅准许其属主执行删除、 移动等操作。
总结:1、set uid: 该权限仅对二进制程序有效(Shell、普通文件无效)
执行者需对该文件有x的可执行权限
本权限仅在执行程序的过程中有效,即为暂时性的
执行者将具有改程序所有者(owner)的权限
2、set gid: 文件方面:对二进制程序有效
程序执行者需具备程序的x的可执行权限
执行者在执行的过程中将会获得改程序用户组的支持
目录方面: 用户若对此目录有r与x权限时,该用户能够进入此目录
用户在此目录下的有效用户组将会变成该目录的属组
若用户在此目录下具有w权限(可创建文件),则用户所创建的新文件的用户组为目录的属组
3、设置Sticky黏键:仅对目录有限
当用户对此目录有w、x权限,当用户在该目录下创建文件或目录时,仅有自己与root才有权利删除该文件
简单说明下:用户甲为研发其中一员,研发成员属于dev组,各目录对应在/home/dev/XXX(研发名字),
甲用户对/home/dev目录有w权限,代表甲可以删除、移动、重名了/home/dev其他研发成员的资料,这是极其不安全的,但是
如果对/home/dev目录设置sticky,则除了root和本人外其他人无法进行毁灭性的操作
特殊权限的数值表示
三种特殊权限可以用单独的一位8进制数值表示
SUID、SGID和sticky-bit的数值表示
SUID SGID sticky 二进制 八进制 说明
- - - 000 0 不设置特殊权限
- - t 001 1 只设置sticky
- s - 010 2 只设置SGID
- s t 011 3 只设置SGID和sticky
s - - 100 4 只设置SUID
s - t 101 5 只设置SUID和sticky
s s - 110 6 只设置SUID和SGID
s s t 111 7 设置三种特
如何设置:
操作这些标志与操作文件权限的命令是一样的, 都是 chmod. 有两种方法来操作,
1) chmod u+s temp -- 为temp文件加上setuid标志. (setuid 只对文件有效,U=用户)
chmod g+s tempdir -- 为tempdir目录加上setgid标志 (setgid 只对目录有效,g=组名)
chmod o+t temp -- 为temp文件加上sticky标志 (sticky只对文件有效)
2) 采用八进制方式. 这一组八进制数字三位的意义如下,
abc
a - setuid位, 如果该位为1, 则表示设置setuid
b - setgid位, 如果该位为1, 则表示设置setgid
c - sticky位, 如果该位为1, 则表示设置sticky
设置后, 可以用 ls -l 来查看. 如果本来在该位上有x, 则这些特殊标志显示为小写字母 (s, s, t). 否则, 显示为大写字母 (S, S, T)
如:
rwsrw-r-- 表示有setuid标志 (rwxrw-r--:rwsrw-r--)
rwxrwsrw- 表示有setgid标志 (rwxrwxrw-:rwxrwsrw-)
rwxrw-rwt 表示有sticky标志 (rwxrw-rwx:rwxrw-rwt)
阅读(406) | 评论(0) | 转发(0) |