SUID
- SUID 权限
仅对二进制可执行文件有效
; - 如果执行者对于该二进制可执行文件具有 x 的权限 ,执行都将具有该文件的所有者权限
- 本权限仅在执行该二进制文件的过程中有效;
[mac@centos ~]$ ll /usr/bin/passwd
-rwsr-xr-x. 1 root root 27832 6月 10 2014 /usr/bin/passwd
[mac@centos ~]$ ll /etc/shadow
----------. 1 root root 1384 4月 20 12:51 /etc/shadow
- 普通 用户tester 利用SUID权限 完成密码修改的过程:
- tester 普通 用户对于 /usr/bin/passwd这个程序具有执行权限 因此可以执行
- passwd 程序的所有者是 root
- tester 用户在执行passwd过程中暂时拥有root权限
- 因此terter 用户在执行passwd程序的过程中可以修改 /etc/shadow
SGID
-
当s标志出现 在用户组的 x 权限 位时为SGID
-
-
SGID 可以用在目录上,当一个目录设置了SGID权限 后,它具有以下功能
- 用户若对此目录具有 r 和 x 权限 ,该用户能够进入该目录。
- 用户在此目录下的有效用户组将变成该目录的用户组
- 若用户在此目录下拥有 w 权限 ,则用户所创建的新文件的所属用户组也该目录的用户组相同。
- PS 当SGID作用于普通 文件时和SUID类似,在执行文件时,用户将获得该文件所属组的权限 。
- PS 当SGID 作用于目录时,当用户对目录有写和执行权限 时该用户就可以在该目录下建立 文件,但新建立的文件的所属组是这个目录的所属组而不是这个用户的所属组。
SBIT
- SBIT 目前只对目录有效,用来阻此非文件的所有者删除文件。
- 权限 信息中最后一位 t 表明该目录被设置了SBIT 权限 。SBIT 对目录的作用是:当用户在该目录下创建的新文件或目录时,仅自己和 root 有权力删除 。
- SBIT 对文件不起作用。
设置SUID ,SGID,SBIT权限
- 以数字的方式设置权限
- SUID ,SGID,SBIT 权限 对应的数字如下
SUID ==> 4
SGID ==> 2
SBIT ==>1
[root@centos ~]# mkdir filename
[root@centos ~]# ll
drwxr-xr-x. 2 root root 6 4月 21 16:46 filename
[root@centos ~]# chmod 4755 filename
[root@centos ~]# ll
drwsr-xr-x. 2 root root 6 4月 21 16:46 filename
-
同理 可以用 2 和 1 来设置SGID 和SBIT权限
-
其实,还可能出现 S 和 T 的情况。S 和 t 是替代 x 这个权限的,但是,如果它本身没有 x 这个权限,添加 SUID、SGID、SBIT 权限后就会显示为大写 S 或大写 T。比如我们为一个权限为 666 的文件添加 SUID、SGID、SBIT 权限。
-
删除特殊权限
- 如上例 可以
chmod 755 filename
这样就恢复了 - 还可以
chmod u-s filename
这样也是删除 - $ chmod u+s testfile # 为 testfile 文件加上 SUID 权限。
$ chmod g+s testdir # 为 testdir 目录加上 SGID 权限。
$ chmod o+t testdir # 为 testdir 目录加上 SBIT 权限。
- 如上例 可以