
我在 Parabola GNU/Linux(基於 Arch)上使用 Mate。我安裝了 polkit-mate-authentication-agent,它應該在登入桌面時自動啟動;但是,它似乎沒有自動或手動啟動。在我的~/.xsession-errors
文件中,我看到以下錯誤:
(polkit-mate-authentication-agent-1:24207): dbind-WARNING **: 07:13:53.904: Couldn't register with
accessibility bus: Did not receive a reply. Possible causes include: the remote application did
not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or
the network connection was broken.
Cannot register authentication agent: GDBus.Error:org.freedesktop.PolicyKit1.Error.Failed: Cannot
determine user of subject
如果我嘗試以普通使用者或 root 身分從終端機啟動它,我會看到非常類似的錯誤。錯誤檔案還顯示了許多其他軟體包的 dbind 警告 - 我不知道這是否與之有關。我使用的是 openrc,而不是 systemd。
這個問題似乎與現有的問題類似;但是,手動啟動似乎可以在那裡工作,因此潛在的問題可能不一樣:
polkit-gnome-authentication-agent-1 升級後不會自動啟動
有什麼想法或建議嗎?
編輯:
的輸出ps -Af | grep dbus
似乎顯示 dbus 正在運行,並且守護程式由登入使用者擁有:
$ ps -Af | grep dbus
dbus 1332 1 0 Mar21 ? 00:00:14 /usr/bin/dbus-daemon --system
john 15835 26842 0 10:18 pts/0 00:00:00 grep --color=auto dbus
lightdm 24087 1 0 07:13 ? 00:00:00 dbus-launch --autolaunch 91d1384971b9deaa251b73355e5436ad --binary-syntax --close-stderr
lightdm 24088 1 0 07:13 ? 00:00:00 /usr/bin/dbus-daemon --syslog-only --fork --print-pid 5 --print-address 7 --session
lightdm 24096 24090 0 07:13 ? 00:00:00 /usr/bin/dbus-daemon --config-file=/usr/share/defaults/at-spi2/accessibility.conf --nofork --print-address 3
john 24117 1 0 07:13 ? 00:00:00 dbus-launch --exit-with-session mate-session
john 24118 1 0 07:13 ? 00:00:00 /usr/bin/dbus-daemon --syslog --fork --print-pid 5 --print-address 7 --session
根據 的輸出,dbus 似乎也在運作和工作busctl
。
我還嘗試安裝 Gnome 身份驗證代理 ( polkit-gnome
),當我嘗試從終端運行它時,我得到了完全相同的錯誤。
答案1
感謝 elogind 開發人員的一些建議,我已經解決了這個問題,我想結束這個問題,以防其他人遇到類似的問題:
問題是當使用 elogind(而不是 systemd)運行時,顯示管理器的 PAM 配置不正確。我的發行版的預設配置似乎與 elogind 不相容。需要修改檔案sddm-greeter
和來呼叫 elogind,而不是 systemd:system-login
/etc/pam.d
session optional pam_elogind.so
例如,我將 sddm-greeter 更改為:
#%PAM-1.0
# Load environment from /etc/environment and ~/.pam_environment
auth required pam_env.so
# Always let the greeter start without authentication
auth required pam_permit.so
# No action required for account management
account required pam_permit.so
# Can't change password
password required pam_deny.so
# Setup session
session required pam_unix.so
#-session optional pam_systemd.so
session optional pam_elogind.so
sddm-greeter (END)
並系統登入:
#%PAM-1.0
auth required pam_tally2.so onerr=succeed file=/var/log/tallylog
auth required pam_shells.so
auth requisite pam_nologin.so
auth include system-auth
account required pam_tally2.so
account required pam_access.so
account required pam_nologin.so
account include system-auth
password include system-auth
session optional pam_loginuid.so
session optional pam_keyinit.so force revoke
session include system-auth
session optional pam_motd.so motd=/etc/motd
session optional pam_mail.so dir=/var/spool/mail standard quiet
#-session optional pam_systemd.so
session optional pam_elogind.so
session required pam_env.so
system-login (END)
基本上,我註解掉了 systemd 行並替換為 elogind 等效項。之後,polkit代理身份驗證工作正常。