cgroup v2下已拥有cgroup所有权仍无法写入cgroup.procs问题咨询
问题原因解析
cgroup v2 对进程迁移操作有额外的安全校验规则,并非仅满足目标cgroup的文件所有者权限就能操作:
- 进程迁移要求操作方同时持有**源cgroup(待迁移PID当前所属的cgroup)和目标cgroup(你创建的g1)**两者的
cgroup.procs写入权限 - 你仅修改了目标cgroup g1的所有者,而PID 4000原本归属的父层级cgroup默认仅root用户有写入权限,普通用户不满足源cgroup的操作权限要求,因此会报Permission denied
- 这层校验是cgroup子系统内核层面的内置规则,和文件系统中
cgroup.procs显示的所有者、权限位无关
可用操作方案
- 若要迁移你自己后续启动的进程,可先将当前shell进程移入g1,之后从该shell启动的所有进程会自动归属g1,该操作无需root权限:
echo $$ > /sys/fs/cgroup/g1/cgroup.procs
- 若必须迁移已运行的非当前cgroup下的进程,只能通过sudo提权执行写入操作,也就是你已经验证可行的
sudo tee方式。
内容的提问来源于stack exchange,提问作者doraemon
相关产品推荐
相关产品推荐

