SGID:
这是设置组ID(Set Group ID) 的缩写。
这是分配给任何文件或者目录的权限,以授予普通组成员以组所有者特权运行该文件的另外权限。
这与我在此处为 SUID 解释的非常相似,但有一点不同,这次我们将权限分配给一个完整的组及其组成员,而不是将权限分配给一个特定用户。
例如,我们有一些可执行文件,我们希望 sysadmin 的所有组成员都能够执行它,但该文件只能以 root 身份运行,因此我们为该文件分配了一个 SGID,现在 sysadmin 团队的所有成员都可以以root权限运行文件。
分配 SGID 权限:
分配SGID有两种方式
- 八进制 (2)
- 符号 (g+s)
八进制 (2) :
# chmod 2755 /myscript.sh # ls -l -rwxr-sr-x. 1 root root 0 Oct 16 11:33 /myscript.sh
符号 (g+s) :
# chmod g+s /myscript.sh # ls -l -rwxr-sr-x. 1 root root 0 Oct 16 11:33 /myscript.sh
删除 SGID 权限
八进制 (2) :
# chmod 0755 /myscript.sh # ls -l -rwxr-xr-x. 1 root root 0 Oct 16 11:33 /myscript.sh
符号 (g-s) :
# chmod g-s /myscript.sh # ls -l -rwxr-xr-x. 1 root root 0 Oct 16 11:33 /myscript.sh
理解SGID中大写S 和小写s 的区别
现在,当我们分配 SGID 权限时,我们有时可能会在组权限部分看到大写 (S) 而不是小 (s)。
如果该文件是否具有组可执行权限,则如果为我们提供添加信息,则这没有太大区别。
如果我们获得大写 S,则表示没有可执行权限,如果我们获得小 s,则表示该文件具有组可执行权限。
例如:
在没有用户所有者可执行权限的情况下应用 SGID 之前
# chmod 655 /myscript.sh # ls -l -rwxrw-rw-. 1 root root 0 Oct 16 11:35 /myscript.sh
在没有对用户所有者的可执行权限的情况下应用 SGID 后
# chmod 2655 /myscript.sh # ls -l -rwxrwSrw-. 1 root root 0 Oct 16 11:35 /myscript.sh
在对用户所有者应用具有可执行权限的 SGID 之前
# chmod 755 /myscript.sh # ls -l -rwxrwxrw-. 1 root root 0 Oct 16 11:36 /myscript.sh
对用户所有者应用具有可执行权限的 SGID 后
# chmod 2755 /myscript.sh # ls -l -rwxrwsrw-. 1 root root 0 Oct 16 11:36 /myscript.sh
相信你已经知道我的意思,并且知道大写S和小写s的区别了。
查找所有带有 SGID 的可执行文件
# find/-perm +2000
其中 +2000 是我们在八进制方法中用于分配权限的 ID。
日期:2020-06-02 22:17:34 来源:oir作者:oir