默认情况下,只能root
创建 CPU 集(并在现有集中操作任务):
$ cset shield -c0
cset: **> [Errno 13] Permission denied: '/cpusets//user'
cset: insufficient permissions, you probably need to be root
如果我授予用户trusted
运行权限sudo cset
,他/她将运行的命令,例如
sudo cset shield -e command
将由 拥有root
,除非我们这样做
sudo cset shield -e sudo -- -u trusted command
这是相当复杂的,尤其是关于command
通过这些层继承的环境......
有没有办法在trusted
不改变身份的情况下授予操作 CPU 集的权限?
根据cpuset手册页:
使用一个小的 sudo 可调用脚本创建一个 cpuset 并调整其中相应文件夹和文件的所有权/权限,用户将被允许创建自己的 cpuset。
然后用户可以在没有root权限的情况下直接使用和修改这个cpuset,并为其创建子cpuset。
另请参阅https://serverfault.com/questions/478946/how-can-i-create-and-use-linux-cgroups-as-a-non-root-user。