X2Go 클라이언트를 사용하여 KDE 세션에 로그인하면 사용자에게 sudo 비밀번호를 묻는 대화 상자가 표시됩니다. 사용자가 sudo 비밀번호를 갖는 것을 원하지 않으며 이 대화 상자가 나타나지 않도록 하고 싶습니다. 사용자는 이에 대해 신경쓰지 말아야 합니다.
대화 상자 제목은 다음과 같습니다.Authentication Required PolicyKit1 KDE Agent
메시지는 다음과 같습니다.
**System policy prevents control of network connections**
An application is attempting to perform an action that requires privileges. Authentication is required to perform this action.
Password:
Action: Allow control of network connections
ID: org.freedesktop.NetworkManager.network-control
Vendor: NetworkManager
polkit.subject-pid: 20440
polkit.caller-pid: 708
- process 708 is /usr/bin/NetworkManager --no-daemon
- process 20440 is kded5 [kdeinit5]
pkaction version 0.116 (that's the policykit version)
인증을 요청/요구해서는 안 되도록 관련 정책이 정의되어 있습니다.
<action id="org.freedesktop.NetworkManager.network-control">
<_description>Allow control of network connections</_description>
<_message>System policy prevents control of network connections</_message>
<defaults>
<allow_inactive>yes</allow_inactive>
<allow_active>yes</allow_active>
</defaults>
</action>
관련 로그 줄은 다음과 같습니다.
Aug 07 21:50:54 desktop polkit-kde-authentication-agent-1[26611]: "Password: "
Aug 07 21:50:54 desktop polkit-kde-authentication-agent-1[26611]: Request: "Password: "
Aug 07 21:50:54 desktop polkit-kde-authentication-agent-1[26611]: REQUEST
Aug 07 21:50:54 desktop polkit-kde-authentication-agent-1[26611]: Trying again
Aug 07 21:50:54 desktop polkit-kde-authentication-agent-1[26611]: Action description has been found
Aug 07 21:50:54 desktop polkit-kde-authentication-agent-1[26611]: Message of action: "System policy prevents control of network connections"
Aug 07 21:50:54 desktop polkit-kde-authentication-agent-1[26611]: Initiating authentication
Aug 07 21:50:54 desktop polkit-kde-authentication-agent-1[26611]: polkit_qt_listener_initiate_authentication callback for 0x55df1e7190a0
Aug 07 21:50:54 desktop polkit-kde-authentication-agent-1[26611]: GSimpleAsyncResult:
Aug 07 21:50:54 desktop polkit-kde-authentication-agent-1[26611]: Listener adapter polkit_qt_listener_initiate_authentication
Aug 07 21:50:43 desktop polkit-kde-authentication-agent-1[26611]: Authentication agent result: true
Aug 07 21:50:43 desktop polkitd[838]: Registered Authentication Agent for unix-session:19 (system bus name :1.5274 [/usr/lib/polkit-kde-authentication-agent-1], object path /org/kde/PolicyKit1/AuthenticationAgent, locale en_US.UTF-8)
Aug 07 21:50:43 desktop polkit-kde-authentication-agent-1[26611]: Listener online
Aug 07 21:50:43 desktop polkit-kde-authentication-agent-1[26611]: Adding new listener PolkitQt1::Agent::Listener
Aug 07 21:50:43 desktop polkit-kde-authentication-agent-1[26611]: New PolkitAgentListener
Aug 07 21:50:42 desktop ksmserver[26587]: org.kde.kf5.ksmserver: Starting autostart service "/etc/xdg/autostart/polkit-kde-authentication-agent-1.desktop" ("/usr/lib/polkit-kde-authentication-agent-1")
지금까지 나는 다음과 같은 폴킷 규칙을 만들어 보았습니다.
/etc/polkit-1/rules.d/00-networkmanager.rules
polkit.addRule(function(action, subject) {
if (action.id == "org.freedesktop.NetworkManager.settings.modify.system")
{
polkit.log("NetworkManager.settings.modify.system: rule called");
return polkit.Result.YES;
}
});
polkit.addRule(function(action, subject) {
if (action.id == "org.freedesktop.NetworkManager.network-control")
{
polkit.log("NetworkManager.network-control: rule called");
return polkit.Result.YES;
}
});
이 규칙은 루트가 소유하며644화권한.
답변1
(pkla
지방정부를 위한 정책 툴킷) 문서:
$ sudo ls -la /etc/polkit-1/localauthority/50-local.d
total 16
drwxr-xr-x 2 root root 4096 Dec 28 20:08 .
drwx------ 7 root root 4096 Aug 1 2017 ..
-rw-r--r-- 1 root root 573 Dec 27 01:16 45-allow-colord.pkla
-rw-r--r-- 1 root root 206 Dec 28 20:08 50-allow-network-manager.pkla
$ sudo cat /etc/polkit-1/localauthority/50-local.d/50-allow-network-manager.pkla
[Network Manager all Users]
Identity=unix-user:*
Action=org.freedesktop.NetworkManager.settings.modify.system;org.freedesktop.NetworkManager.network-control
ResultAny=no
ResultInactive=no
ResultActive=yes
답변2
경고: 이 답변은 거의 모든 폴킷 보안 보호를 비활성화합니다.
다음을 시도해 보십시오: /etc/polkit-1/localauthority/50-local.d 폴더에 다음 내용으로 universal.pkla라는 파일을 생성하십시오.
[Allow access to anything for remote users]
Identity=unix-user:*
Action=*
ResultAny=yes
ResultInactive=yes
ResultActive=yes
그런 다음 "sudo systemctl restart polkit.service"를 사용하여 polkit을 다시 시작하거나 재부팅하십시오. 그 이후로 폴킷 인증 메시지를 본 적이 없습니다.
답변3
저는 debian 12(KDE)와 xrdp/vnc를 사용하고 있는데 오늘도 같은 문제가 발생했습니다.
이것은 오래된 질문이지만 어떤 답변도 나에게 도움이 되지 않았습니다.
실제로 pkla
파일 방법을 사용하여 색상 관리자 문제를 해결한 적이 있습니다. 하지만 이번에는 왜 나에게 효과가 없었는지 모르겠습니다.
읽은 후 이 문제를 해결한 방법은 다음과 같습니다 man polkit
.
파일을 사용하는 대신 pkla
사용자가 "sudo" 그룹에 있을 때 "org.freedesktop.NetworkManager.network-control" 작업을 허용하는 규칙 파일을 만들었습니다.
아래에서 이 구성을 만드세요.
/etc/polkit-1/rules.d/50-allow-network-manager.rules
---
polkit.addRule(function(action, subject) {
if (action.id == "org.freedesktop.NetworkManager.network-control" &&
subject.isInGroup("sudo")) {
return polkit.Result.YES;
}
});
그런 다음 시스템을 다시 시작하십시오.
2023년 12월 26일에 업데이트되었습니다.
polkitd-pkla
pklocalauthority가 데비안에서 작동하도록 하려면 패키지를 설치해야 합니다 :
sudo apt install polkitd-pkla
따라서 이 pkla는 동일한 작업을 수행합니다.
[Allow Network Manager]
Identity=unix-group:sudo;
Action=org.freedesktop.NetworkManager.network-control
ResultAny=no
ResultInactive=no
ResultActive=yes