>>>Linux教程目录<<<

权限管理-2.2SetGID

写在前面:自己写完检查可能会有所纰漏,读者们如若发现哪里有错误,可在下方留言或私信我,我会第一时间改正

1. SetGID针对文件的作用
  • 只有可执行的二进制文件才能设置 SGID 权限
  • 命令执行者要对该程序拥有 x(执行)权限
  • 命令执行者在执行该程序时,组身份升级为该程序文件的属组
  • SetUID 权限同样只有在该程序执行的过程中有效,也就是说组身份改变只在程序执行过程中有效
2. 示例
  • ll /usr/bin/locate
  • -rwx- -s- - x 1 root slocate 35612 4月 21 2020 /usr/bin/locate
  • ll /var/lib/mlocate/mlocate.db
  • -rw- r - - - - - 1 root slocate 1838850 4月 21 2020 /var/lib/mlocate/mlocate.db
  • 普通用户对 mlocate.db 库没有直接访问权限,但使用 locate 命令时,组身份会升级为 mlocate.db 的属组身份,而来属组对其有 r 权限,所以普遍用户可以通过 locate 命令搜索 mlocate.db 库,命令结束之后组身份则会变回原来的组
3. SetGID针对目录的作用
  • 普通用户必须要对该目录拥有 r 和 x 权限,才能进入目录
  • 命令执行者在执行该程序时,组身份升级为该程序文件的属组
  • 若普通用户对此目录拥有 w 权限时,新建的文件默认属组是这个目录的属组
4. 设定SetGID
  • chmod 2755 [文件名]
  • 或 chmod g+s [文件名]
  • 数字 2 即代表了SGID 权限
5. 取消SetGID的方法
  • chmod 755 [文件名]
  • 或 chmod g-s [文件名]

写在后面:希望这些讲解对你有所帮助,希望大家多多点赞和关注,你们的支持是我最大的动力(๑>؂<๑)

Logo

更多推荐