You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何User Namespaces中映射范围长度大于1时触发权限错误?

User Namespaces ID映射范围过长触发权限错误的原因

问题场景

执行以下命令时出现权限错误:

xx@xx:~$./userns -U -M '0 100000 65536' -G '0 100000 65535' bash
ERROR: write /proc/414325/uid_map: Operation not permitted

但执行这条命令时却能正常运行:

./userns -U -M '0 100000 65536' -G '0 100000 1' bash

操作系统:Ubuntu

原因分析

  • Ubuntu默认给普通用户使用User Namespaces加了限制:当要映射的用户/组ID范围长度大于1时,系统会强制检查/etc/subuid和/etc/subgid配置文件。
  • 这两个文件用于给普通用户预分配可用于User Namespaces的连续ID段,如果你的用户没有在里面配置足够的ID范围,内核就会拒绝写入uid_map或gid_map,直接抛出"Operation not permitted"错误。
  • 而映射范围长度为1的情况是特例,Ubuntu默认允许普通用户不用预配置就能做这种一对一的简单映射,算是降低了基础使用场景的权限门槛。

解决办法

  1. 先检查当前用户的subuid/subgid配置:
    grep $USER /etc/subuid /etc/subgid
    
  2. 如果没有配置,用usermod给用户分配对应的ID范围:
    sudo usermod --add-subuids 100000-165535 $USER
    sudo usermod --add-subgids 100000-165535 $USER
    
  3. 重新登录会话让配置生效,之后再执行原命令就能正常运行了。

内容的提问来源于stack exchange,提问作者stackflow-crystal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 20:09:22