为什么取消共享挂载命名空间需要 CAP_SYS_ADMIN?

为什么取消共享挂载命名空间需要 CAP_SYS_ADMIN?

对于我的一个项目,我需要仅有的挂载命名空间未共享,这需要 CAP_SYS_ADMIN 功能(请参阅命名空间)。虽然也可以通过取消共享用户命名空间来创建没有功能的新安装命名空间,但我想避免这种情况,因为这引入了其他限制(例如,无法从那里调用 setuid 程序)。我正在考虑编写一个 setuid 程序,它允许为每个人取消共享安装空间,并且想知道这是否不安全?目前我无法想象出现这种情况的场景。那么,不允许普通用户取消共享安装空间的理由是什么?

答案1

我可以想到选择内核的两个原因。

  1. 如果/尚未重新挂载MNT_SHARED(例如通过systemd),则克隆挂载命名空间将固定所有挂载,包括可移动媒体的挂载。
  2. 另外,我们不允许非特权用户创建“意外”状态,因为它有可能混淆某些 setuid 程序。因此,如果他们没有特别的理由认为这是有用的,那么这是更安全的选择。他们想不出任何重要的原因为什么你想要克隆挂载命名空间的权限,但又不能任何与它有关的东西。显然你已经想到了一些原因,但即使阅读你的问题我也无法猜出它是什么:-)。

相关内容