저는 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 프록시 인증이 제대로 작동했습니다.