我正在尝试在两个不同的操作系统(Ubuntu和CentOS)上使用控制组.我想问的问题很少.
我正在尝试使用cgcreate命令创建一个控制组,看起来它需要在计算机上进行root访问.到目前为止,我所看到的所有示例都没有说明需要成为创建或修改控制组的root用户.
是否真的有必要成为root用户?最终目标是编写一个C应用程序,该应用程序使用libcgroup API创建和管理控制组以控制资源.但是C应用程序不会由任何root用户运行.它可以是任何普通用户.
解决方法:
除此之外的安全含义,您可以设置setuid位
chmod +s /bin/cgcreate
chmod +s /bin/cgdelete
给予运行该程序root权限的非root用户.
建议将删除正常的用户访问权限
chmod 550 /bin/cgcreate
chmod 550 /bin/cgdelete
并创建一个您希望允许使用cgcreate IE cgusers的特殊组,
groupadd cgusers
并将这些文件的组成员身份更改为该组:
chgrp cgusers /bin/cgcreate
chgrp cgusers /bin/cgdelete
所有这些都将由root运行,之后cgusers组中的所有用户将以root身份而不是自己运行cgcreate和cgdelete.你只需要拥有你想要在正确的群体下拥有这种力量的成员.