Systemd
為什麼 systemctl 在使用者模式下要求輸入 sudo 密碼?
我目前正在嘗試
ssh-agent
通過使用 systemd 作為使用者服務啟動它來啟動我的每次登錄,如arch wiki 中所述。但是,當我執行 時
systemctl --user start ssh-agent
,systemctl
會通過 sudo 提示我輸入密碼,就好像我正在啟動正常服務一樣。然後它失敗了,因為它無法連接到匯流排。但是,$DBUS_SESSION_BUS_ADDRESS
現在unix:path=/run/user/1000/bus
並且應該沒問題。但是如果我通過 切換到 root 使用者sudo su
,$DBUS_SESSION_BUS_ADDRESS
則為空。因此,我認為實際問題是systemctl
試圖以 root 使用者而不是我的使用者身份啟動使用者服務,這也是它通過 sudo 提示我輸入密碼的原因。所以,我認為這是真正的問題。
systemctl
那麼,即使我提供了,有人知道為什麼以 root 身份通過 sudo 執行--user
嗎?
我發現有一個別名將
systemctl
其替換為sudo systemctl
in~/.bashrc.aliase
。這使得它無法systemctl --user
正常執行。