不久前,我曾经使用grsecurity内核补丁,它可以选择对其他非 root 用户隐藏进程参数。基本上这只是/proc/*/cmdline
模式 0600,并ps
通过显示进程存在而不是其参数来正确处理。
如果有人在多用户机器上运行 say ,这很好vi christmas-presents.txt
,使用规范示例。
除了安装新内核之外,在 Ubuntu 中是否有任何受支持的方法可以做到这一点?
(我熟悉让单个程序更改其 argv 的技术,但大多数程序不这样做,而且无论如何它是活泼的。 这个 stackoverflow 用户似乎在问同样的问题,但实际上似乎很困惑。)
目前这样做的唯一方法是将每个用户放在一个单独的容器中(请参阅使用和克隆),并在容器中安装一个新用户。(lxc会为你做一些。)
CLONE_NEWPID
CLONE_NEWNS
/proc
但是,有计划将 grsecurity 功能移植到 Ubuntu 和上游内核。如果可以的话,请注册一些东西并提供帮助。
在 Natty 之前(包括 Natty),无法
/proc/$pid/cmdline
使用股票内核更改文件的权限,权限位内置于内核中。目前,您必须构建一个应用了这些补丁的定制内核。如果补丁很容易启用此功能,那么可能值得将它们发布到 Ubuntu 内核团队列表 ( [email protected] ),我们可以考虑将它们包含在未来的版本中。
现在有一个
hidepid
挂载选项procfs
,可让您向其他用户隐藏参数,并可选择允许一个组查看所有进程:几年前,我发布了以下两个内核补丁:
这两个补丁仍然适用于 kernel.org 的当前稳定的 vanilla 内核。如果你有兴趣,我可以发布当前的补丁。不要问我为什么从来没有人在上游内核中包含进程隐藏选项。
警告:这些补丁完全隐藏了除 root 之外的其他用户的进程。
您可以通过在用户和组设置中更改他们的权限来阻止他们访问系统监视器和顶部。我不确定这将是一个完整的解决方案,但它应该足以阻止大多数普通用户使用。