PCL*_*PCL 5 rhel systemd rhel7 polkit
我需要允许非 root 用户启动和停止服务。建议我使用PolicyKit而不是sudoers.d我熟悉的 。
由于我没有使用经验PolicyKit,我想我应该尝试并创建一个规则来允许非 root 用户启动和停止 Docker 服务。我创建了一个文件,/etc/polkit-1/rules.d/10-docker.rules其中包含:
polkit.addRule(function(action, subject) {
if (action.id == "org.freedesktop.systemd1.manage-units" &&
action.lookup("unit") == "docker.service")
{
return polkit.Result.YES;
}
})
Run Code Online (Sandbox Code Playgroud)
但是,每当我执行 时systemctl start|stop|restart docker.service,都会不断提示我输入密码。我缺少什么?
另外,我想限制非 root 用户控制特定组中的此服务,例如blah。我如何将其纳入我的规则中?
我的目标操作系统是 RHEL 7.7。
小智 1
在CentOS7上,action无法访问该unit信息。这是在更高版本的 systemd v226 中引入的。
https://github.com/systemd/systemd/commit/88ced61bf9673407f4b15bf51b1b408fd78c149d
我也被这个打击了。您需要允许用户管理所有单元,或者回到在 sudoers 上使用 shell 脚本的石器时代。
另外,我想限制非 root 用户控制特定组中的此服务,例如等等。我如何将其纳入我的规则中?
使用subject.isInGroup("group")。
看:
| 归档时间: |
|
| 查看次数: |
8641 次 |
| 最近记录: |