/ proc / <PID> / environ上的权限策略是什么?


2

我明白了,通常的用户进程获得了用户可读的权限:

-r-------- 1 1000 1000 0 Nov 19 13:51 /proc/9083/environ

但是f.ex. SCREEN守护进程得到 root 所有权:

-r-------- 1 root root 0 Nov 19 13:47 /proc/9167/environ

虽然,9167也是用户UID:

# ps axnu|grep 9167
    1000  9167  0.0  0.0  23488  2008 ?   Ss   13:47   0:00 SCREEN

Answers:


2

在大多数系统上, /usr/bin/screen 与...一起安装 setuid的 root的位,意味着它将首先以有效的UID 0开始,并且只有稍后的drop权限(返回到您的普通UID)。

(这用于实现“会话共享”功能,因为不允许您的屏幕连接到其他用户的屏幕套接字。)

但是,由于特权进程可能会将敏感信息保留在内存中,因此内核会为其提供特殊保护 - 即使它们删除所有权限并切换到您的UID,您仍然无法发送信号,附加调试器或创建核心转储。

“无核心转储”选项,也称为 fs.suid_dumpable sysctl设置,是导致Screen的原因 /proc 无论其有效UID如何,root都将永久拥有这些文件。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.