【发布时间】:2014-02-23 20:25:21
【问题描述】:
有没有办法在 C 语言中为基于 Linux 的系统上的进程提供唯一权限?我基本上想限制一个进程(由主机启动,如事件处理程序)编辑其工作目录之外的任何文件,并创建套接字等。
做到这一点的唯一方法是让主机进程为它产生的每个进程创建一个新用户并在之后销毁该用户吗?
【问题讨论】:
-
这可能有点矫枉过正,但这种事情可以用
chroot()处理。 -
危险在于大多数可能的机制都需要 root 权限才能实现更改。您可以查找
chroot()— 但要注意为chroot()程序创建合适的环境是很棘手的;您可以查找 BSD 'jails';您可以考虑简单地将真实有效的 UID 和 GID 设置为不能更改目录外任何内容的用户/组(但请注意,它仍然能够读取可公开访问的文件,例如/etc/passwd)。跨度>
标签: c linux process permissions