加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – 为什么unshare(CLONE_NEWNET)需要CAP_SYS_ADMIN?

发布时间:2020-12-14 01:40:56 所属栏目:Linux 来源:网络整理
导读:我正在使用 linux命名空间,我注意到如果用户想要在新的网络命名空间中执行进程(不使用用户命名空间),他需要是root用户或具有CAP_SYS_ADMIN功能. unshare(2)手册页说: CLONE_NEWNET (since Linux 2.6.24) This flag has the same effect as the clone(2) CLO
我正在使用 linux命名空间,我注意到如果用户想要在新的网络命名空间中执行进程(不使用用户命名空间),他需要是root用户或具有CAP_SYS_ADMIN功能.

unshare(2)手册页说:

CLONE_NEWNET (since Linux 2.6.24)

This flag has the same effect as the clone(2) CLONE_NEWNET flag.
Unshare the network namespace,so that the calling process is moved into a new net﹚ork namespace which is not shared with any previously existing process. Use of CLONE_NEWNET requires the CAP_SYS_ADMIN capability.

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

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

解决方法

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

通常,不能知道拒绝特权进程访问网络不会导致安全漏洞.因此,内核假定操作是特权的,并且由系统策略决定是否为普通用户提供特权实用程序.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读