添加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添加删除粘着位权限。