man 2 unshare告诉我们

Use of CLONE\_NEWPID requires the CAP\_SYS\_ADMIN capability

以及建议的读取更多信息man 7 pid\_namespaces并没有真正讨论必须将pid\_namespace限制为root / CAP\_SYS\_ADMIN的可能风险.

如果由非root用户运行,CLONE\_NEWPID的风险是什么?

在没有CLONE\_NEWPID的克隆中,pid\_namespace将保持不变,因此比创建新的空pid\_namespace的情况更广泛且可能更危险.


遗憾的是,如果没有针对非root用户的用户PID命名空间的概念,在Linux中可靠地跟踪后代进程变得困难. pid\_namespaces将是非常方便的功能,因此我无法理解为什么只有CAP\_SYS\_ADMIN被认为适合运行CLONE\_NEWPID.我是否错过了让CLONE\_NEWPID如此危险忙碌的重点?

解决方法:

我认为这是一个预防措施.不允许非特权用户将限制应用于像sudo这样的set-user-id(或具有文件功能集)的程序,以防它们将它们混淆为执行他们不打算允许的操作.

在某些情况下,这是通过set-uid等防止提升来强制执行的.这是使用seccomp过滤系统调用时采用的方法.

但是对于名称空间,意图非常允许使用命名空间用户ID.命名空间在增量过程中合并到主线Linux中,从最简单的用户命名空间开始.我怀疑没有兴趣添加特殊情况,在进入PID命名空间时强制执行no-new-privs,当你还没有完全特权时.

这些名称空间的交互变得非常复杂,所以如果这些案例的需求不是很高,那么不要扩散太多不同的案例是件好事.

标签: linux, process, security, namespace, capabilities

相关文章推荐

添加新评论,含*的栏目为必填