为什么取消共享(CLONE_NEWNET)需要CAP_SYS_ADMIN?

Spe*_*ave 6 linux linux-namespaces

我正在使用linux命名空间,我注意到如果用户想要在新的网络命名空间中执行进程(不使用用户命名空间),他需要是root用户或具有该CAP_SYS_ADMIN功能.

取消共享(2)手册页说:

CLONE_NEWNET(自Linux 2.6.24起)

该标志与clone(2)CLONE_NEWNET标志具有相同的效果.取消共享网络命名空间,以便将调用进程移动到新的网络命名空间中,该命名空间不与任何以前存在的进程共享.使用CLONE_NEWNET需要CAP_SYS_ADMIN功能.

因此,如果我想在网络沙箱中执行pdf阅读器,我必须使用user-net-namespaces或某些特权包装器.

为什么?新进程将被放置在没有接口的新网络命名空间中,因此它将与真实网络隔离,对吧?非特权非用户网络命名空间引发哪种问题/安全威胁?

Juh*_*man 0

创建网络命名空间允许操作具有 setuid 标志或其他特权的二进制文件的执行环境。用户命名空间消除了这种可能性,因为进程无法获得不包含在用户命名空间中的权限。

一般来说,无法得知拒绝特权进程访问网络不会造成安全漏洞。因此,内核假定操作是特权的,并且由系统策略来决定是否为普通用户提供特权实用程序。