设置SUID / SGID位:运行程序时您的权限
版本1.0
作者:VirtualEntity <lafeyette_management [at] comast [dot] net>
如何以及为什么要在文件上设置SUID / SGID位? 这是什么
通常,当程序在Linux下运行时,它会继承运行它的用户的权限,因此如果我在我的帐户下运行程序,程序运行的权限与我该使用的程序相同。 因此,如果我无法打开某个文件,我正在运行的程序也无法打开该文件。
如果我为文件设置了SUID或SGID位,这会导致运行该文件的任何人员或进程能够访问系统资源,就像它们是文件的所有者一样。
为此,我们可以使用字母,例如:
chmod u+s freddy
这样会改变情况,以便如果用户X运行freddy,fredy将以我的权限执行,而不是他或她自己执行。 (程序获得“卡住”权限取决于运行chmod命令的人的权限。)
你可以看到这种变化的效果如下:
ls -l freddy
-rwSrwxr-x 1 mike mike 0 Dec 5 11:24 freddy
[mike@berlin mike]$
另一种运行方式是chmod组而不是用户权限字节,例如
chmod g+s freddy
这赋予了我的组(g组,而不是其他“G”组)对该文件的权限,以便运行时,它作为我的组中的某人运行,而不是作为执行它的用户运行。
这样做的效果如下所示:
ls -l freddy
-rwSrwSr-x 1 mike mike 0 Dec 5 11:24 freddy
[mike@berlin mike]$