首页 » 信息技术 »

什么是SetGID权限?

2019年6月26日 / 17次阅读
Linux

SetGID权限与SetUID权限类似,后者是用文件的owner权限附体,前者是用文件的group权限附体。

SetGID条件:

  • 针对文件
    • 可执行的二进制文件
    • 命令执行者(即所属组)对该文件具备 x 权限
    • 执行时,执行者被所属组灵魂附体
    • 权限只在执行过程中有效
  • 针对目录
    • 普通用户对目录具备x权限,才可以进入到该目录;(有r权限,无法进入目录,但是可以查看目录中的内容;有w权限,可以在目录中创建新的文件或目录)
    • 普通用户在此目录中的有效组会变成此目录的所属组
    • 如普通用户对该目录具备w权限,新建文件的所属组为该目录的所属组

     

设置SetGID权限:

$sudo chmod g+s

取消SetGID权限:

$sudo chmod g-s

locate命令来举例说明:

xinlin@ubuntu:~$ which locate
/usr/bin/locate
xinlin@ubuntu:~$ ll /usr/bin/locate
lrwxrwxrwx 1 root root 24 Jun 11 15:29 /usr/bin/locate -> /etc/alternatives/locate*
xinlin@ubuntu:~$ ll /etc/alternatives/locate
lrwxrwxrwx 1 root root 16 Jun 11 15:29 /etc/alternatives/locate -> /usr/bin/mlocate*
xinlin@ubuntu:~$ ll /usr/bin/mlocate
-rwxr-sr-x 1 root mlocate 43088 Mar 2 2018 /usr/bin/mlocate*

locate命令藏得好深。。。这个命令就具有SetGID权限,因为这个命令是读取一个db文件的内容:

xinlin@ubuntu:~$ ll /var/lib/mlocate/mlocate.db
-rw-r----- 1 root mlocate 11193563 Jun 26 11:11 /var/lib/mlocate/mlocate.db

这个db文件对普通用户,没有任何权限,但是对同组(mlocate组)用户,可以读。因此,可以理解普通用户在执行locate命令的时候,权限升级为mlocate组的权限,因此就可以去读取mlocate.db文件。

这就是SetGID权限。

本文链接:https://www.maixj.net/ict/setgid-21824

相关文章

留言区


前一篇:
后一篇:

栏目精选

云上小悟,麦新杰的独立博客

Ctrl+D 收藏本页

栏目


©Copyright 麦新杰 Since 2014 云上小悟独立博客版权所有 备案号:苏ICP备14045477号-1。云上小悟网站部分内容来源于网络,转载目的是为了整合信息,收藏学习,服务大家,有些转载内容也难以判断是否有侵权问题,如果侵犯了您的权益,请及时联系站长,我会立即删除。

网站二维码
go to top