
저는 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
일반 사용자나 루트로 터미널에서 시작하려고 하면 매우 유사한 오류가 표시됩니다. 오류 파일에는 다른 많은 패키지에 대한 dbind 경고도 표시됩니다. 그것이 그것과 관련이 있는지는 모르겠습니다. systemd가 아닌 openrc를 사용하고 있습니다.
문제는 이 기존 질문과 유사해 보입니다. 그러나 수동으로 시작하면 작동하는 것 같으므로 근본적인 문제가 동일하지 않을 수 있습니다.
업그레이드 후 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 개발자 중 한 사람의 조언 덕분에 이 문제를 해결했으며 다른 사람이 비슷한 문제를 경험할 경우를 대비해 이 문제를 종료하고 싶습니다.
문제는 systemd와 달리 elogind로 실행할 때 디스플레이 관리자에 대한 잘못된 PAM 구성이었습니다. 내 배포판의 기본 구성이 elogind와 호환되지 않는 것 같습니다. systemd가 아닌 elogind를 호출하려면 파일 sddm-greeter
과 system-login
in을 /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 에이전트 인증이 제대로 작동했습니다.