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

Ubuntu20.04下非root用户svc_auto_bm无法免密管理http.server.service服务的问题求助

Ubuntu20.04下非root用户svc_auto_bm无法免密管理http.server.service服务的问题求助

大家好,我在Ubuntu 20.04.6 LTS上遇到了一个权限配置的问题,想请各位帮忙排查一下。

环境与服务配置

  • 系统版本:Ubuntu 20.04.6 LTS
  • 我部署了一个运行在6000端口的HTTP服务,对应的systemd服务文件/etc/systemd/system/http.server.service内容如下:
[Unit]
Description = Job that runs simple http server daemon

[Service]
Type=simple
WorkingDirectory=/home/svc_auto_bm/projects/lab_automation_bot/output
User=svc_auto_bm
ExecStart=/usr/bin/python3 -m http.server 6000
ExecStop=/bin/kill `/bin/ps aux | /bin/grep http.server | /bin/grep -v grep | /usr/bin/awk '{ print $2 }'`
Restart=on-abort

[Install]
WantedBy=multi-user.target

注:root用户可以正常启动、管理这个服务,没有任何问题。

遇到的问题

我创建了用户svc_auto_bm,希望让这个用户能够免密启动、停止、重启http.server.service,但切换到该用户执行systemctl start http.server.service等命令时,会弹出需要输入密码的窗口,而且可选用户列表里根本没有svc_auto_bm,完全无法完成操作。

已尝试的配置

为了实现免密权限,我配置了Polkit相关规则:

  1. 在/etc/polkit-1/localauthority/50-local.d/下创建了service-auth.pkla文件:
[Allow svc_auto_bm to start/stop/restart services]
Identity=unix-group:svc_auto_bm
Action=org.freedesktop.systemd1.manage-units
ResultActive=yes
  1. 在/etc/polkit-1/rules.d/下创建了三个规则文件(service-auth.rules、http.server.rules、svc_auth_bm.rules),内容完全一致:
polkit.addRule(function(action, subject) {
if (action.id == "org.freedesktop.systemd1.manage-units" &&
subject.isInGroup("svc_auto_bm")) {
if (action.lookup("unit") == "http.server.service") {
var verb = action.lookup("verb");
if (verb == "start" || verb == "stop" || verb == "restart") {
return polkit.Result.YES;
}
}
}
});

求助问题

我已经做了以上配置,但还是无法实现svc_auto_bm用户免密管理目标服务,想请教各位:哪里配置出错了?或者还有什么遗漏的步骤需要补充吗?

备注:内容来源于stack exchange,提问作者user305312

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.22 13:22:57