首页 > 代码库 > SUID、SGID

SUID、SGID

添加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类似SUID,轻易不要随便设置,会给系统增加风险!

SUID、SGID