在 openssh Red Hat 包中,我注意到ssh-agent
可执行文件具有 SGID 权限设置:
$ ls -l /usr/bin/ssh-agent
-rwxr-sr-x 1 root nobody 113648 Nov 24 2010 /usr/bin/ssh-agent
openssh 开发人员为什么要ssh-agent
与该组一起运行nobody
?或者我可能误解了 SGID 的作用?
答案1
嗯,我的是将组设置为ssh
组。我猜你使用的是 RedHat 衍生系统;他们喜欢滥用nobody
用户/组。
经过谷歌搜索,我们发现 setgid 是为了防止安全漏洞,即通过 ptracing 代理获取密钥材料(http://comments.gmane.org/gmane.linux.debian.devel.ssh/59)。使进程 setgid-anything 意味着非 root (或至少非CAP_SYS_PTRACE
) 用户执行的 ptracing 是 EPERMed。