为什么 systemctl 在用户模式下要求输入 sudo 密码?

为什么 systemctl 在用户模式下要求输入 sudo 密码?

我目前正在尝试在ssh-agent每次登录时通过使用 systemd 将其作为用户服务启动正如 arch wiki 中所解释的

但是,当我执行 时systemctl --user start ssh-agent,会systemctl通过 sudo 提示我输入密码,就像我正在启动常规服务一样。然后它会失败,因为它无法连接到总线。然而,$DBUS_SESSION_BUS_ADDRESSunix:path=/run/user/1000/bus而且应该没问题。但如果我通过切换到root用户sudo su,则为$DBUS_SESSION_BUS_ADDRESS空。因此,我认为实际问题是systemctl尝试以 root 用户而不是我的用户身份启动用户服务,这也是它通过 sudo 提示我输入密码的原因。所以,我认为这才是真正的问题。

那么,有人知道为什么systemctl即使我提供了也通过 sudo 作为 root 执行吗--user

答案1

我发现有一个别名systemctl将其替换为sudo systemctlin ~/.bashrc.aliase。这使得它无法systemctl --user正常运行。

相关内容