Arch-Linux

無法啟動 polkit-mate-authentication-agent

  • April 12, 2020

我在 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 的輸出,dbus 似乎也在執行和工作busctl

我還嘗試安裝 Gnome 身份驗證代理 ( polkit-gnome),當我嘗試從終端執行它時,我得到了完全相同的錯誤。

感謝一位 elogind 開發人員的一些建議,我已經解決了這個問題,我想關閉它,以防其他人遇到類似問題:

問題是顯示管理器的 PAM 配置不正確,當使用 elogind 執行時,而不是 systemd。我的發行版的預設配置似乎與 elogind 不兼容。需要修改文件sddm-greeter並呼叫 elogind system-login,而不是 systemd:/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 代理身份驗證工作正常。

引用自:https://unix.stackexchange.com/questions/574456