SUID、SGID、Sticky BIT

添加SUID

chmod 4755 可执行文件名

或 chmod u+s 可执行文件名

删除SUID:

chmod 755 可执行文件名

或 chmod u-s 可执行文件名

[root@localhost project]# ll
总用量 0
-rw-rw----+ 1 root root 0 8月   5 20:07 b
[root@localhost project]# chmod u+s b
[root@localhost project]# ll
总用量 0
-rwSrw----+ 1 root root 0 8月   5 20:07 b   注:大写S表示有问题,文件属主对文件无可执行权限。

 危险的SetUID:若给vim设置SUID权限,则所有普通用户可通过vim修改所有配置文件。


SGID实例:

[root@localhost ~]# ll /usr/bin/locate
-rwx--s--x. 1 root slocate 40512 11月  5 2016 /usr/bin/locate
[root@localhost ~]# ll /var/lib/mlocate/mlocate.db 
-rw-r-----. 1 root slocate 834129 8月   5 10:06 /var/lib/mlocate/mlocate.db

 locate命令的执行过程是读取/var/lib/mlocate/mlocate.db文件,但普通用户对/var/lib/mlocate/mlocate.db无r权限,因为locate有SGID权限,所有普通用户在执行locate命令时会临时将自己所属组变为locate命令所有组,即slocate,而/var/lib/mlocate/mlocate.db文件的所有组也是slocate,所以普通用户执行locate时有权限读取/var/lib/mlocate/mlocate.db文件。

添加SGID权限:

chmod 2755 可执行文件名

或 chmod g+s 可执行文件名

对可执行文件属组必须要有执行权限才有效,不然SGID位会是大写S

chmod 2755 目录

或 chmod g+s 目录

取消SGID权限:

chmod 755 文件或目录

chmod g-s 文件或目录

演示SGID对目录的效果:

[root@localhost ~]# mkdir /tmp/test
[root@localhost ~]# ls /tmp
test
[root@localhost ~]# chmod g+s /tmp/test
[root@localhost ~]# ll -d /tmp/test/
drwxr-sr-x. 2 root root 6 8月   5 21:32 /tmp/test/
[root@localhost ~]# chmod 2777 /tmp/test/
[root@localhost ~]# ll /tmp/test -d
drwxrwsrwx. 2 root root 6 8月   5 21:32 /tmp/test
[root@localhost ~]# su - xiongjiawei
上一次登录:六 8月  5 21:01:39 CST 2017pts/0 上
[xiongjiawei@localhost ~]$ pwd
/home/xiongjiawei
[xiongjiawei@localhost ~]$ ls
mytxt
[xiongjiawei@localhost ~]$ touch aaa
[xiongjiawei@localhost ~]$ ll
总用量 4
-rw-rw-r--. 1 xiongjiawei xiongjiawei   0 8月   5 21:39 aaa
-rw-rw-r--. 1 xiongjiawei xiongjiawei 153 7月  23 20:25 mytxt
[xiongjiawei@localhost ~]$ cd /tmp/test/
[xiongjiawei@localhost test]$ ll
总用量 0
[xiongjiawei@localhost test]$ touch bbb
[xiongjiawei@localhost test]$ ll
总用量 0
-rw-rw-r--. 1 xiongjiawei root 0 8月   5 21:39 bbb    注:此处即体现SGID的作用,普通用户对具有SGID权限目录有w权限时在此此目录下创建的文件属组非普通用户的属组,而是该目录的属组

 针对文件的SetGID类似SUID,轻易不要随便设置,会给系统增加风险!


Sticky BIT

作用:普通用户对目录具有w权限时可删除该目录下所有文件,如此目录权限有StickyBIT权限则普通用户只能删除自己创建的文件。

[xiongjiawei@localhost test]$ ll -d /tmp
drwxrwxrwt. 8 root root 105 8月   5 21:39 /tmp

若一个目录对普通用户有w权限,则任用户可以删除此目录下文件,但若此目录有StickyBIT权限则普通用户只能删除自己创建的文件。

添加StickyBIT权限:

chmod 1755 目录

chmod o+t 目录

删除StickyBIT权限:

chmod 755 目录

chmod o-t 目录

只能root添加删除粘着位权限。

原文地址:https://www.cnblogs.com/xiongjiawei/p/7291393.html