/proc/ 的权限策略是什么/环境?

/proc/ 的权限策略是什么/环境?

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

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

但例如 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

答案1

在大多数系统上,/usr/bin/screen安装时设置用户标识位代表 root,这意味着它将首先以有效 UID 0 启动,然后才放弃权限(返回到您的正常 UID)。

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

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

“无核心转储”选项(也称为fs.suid_dumpablesysctl 设置)会导致 Screen 的/proc文件永久归 root 所有,无论其有效 UID 如何。

相关内容