데스크톱 환경에 구애받지 않는 방식으로 폴킷 에이전트를 사용할 수 있는지 확인해야 합니다.
지금 내가 하고 있는 일은 다음과 같은 코드를 사용하여 polkit 에이전트가 실행 중인지 확인하는 것입니다.
ps aux | grep some-polkit-agent
다음과 some-polkit-agent
같을 수 있습니다:
polkit-gnome-authentication-agent-1
(gnome2 및 gnome3-fallback에 적용)polkit-kde-authentication-agent-1
(kde의 경우)polkit-mate-authentication-agent-1
(파트너용)lxpolkit
(LXDE의 경우)
"대체 없음" gnome3(gnome-shell)에는 gnome-shell 프로세스 자체에 자체 폴킷 에이전트가 있으므로 ps-grep을 수행할 수 없습니다. 내 가정은 gnome-shell
실행 중이면 polkit 에이전트가 제자리에 있다는 것입니다.
시스템에 문제가 있을 때 문제가 발생합니다 hidepid
(참조:http://www.linux-dev.org/2012/09/hide-process-information-for-other-users/). 이 보안 조치는 ps
폴킷 프록시가 있는 경우에도 실행 중인 프록시가 나에게 표시되는 것을 방지합니다.
사용 가능한 폴킷 프록시를 확인하는 더 좋은 방법이 있습니까?
답변1
"사용 가능한 폴킷 프록시가 있는지 확인해야 합니다."
아마도 특정 프로세스(프로세스 pid) 또는 pid(시스템 버스 이름)를 볼 수 없기 때문에 이를 사용할 수 있기를 원하십니까?
이 경우 pkcheck 매뉴얼 페이지에 나와 있는 것처럼 특정 프로세스에 대해 "pkcheck"를 사용하고 해당 프로세스의 반환 값을 확인할 수 있습니다.
If the specificied process is not authorized because **no suitable**
**authentication agent is available** or if the --allow-user-interaction
wasn't passed, pkcheck exits with a return value of 2 and a diagnostic
message is printed on standard error. Details are printed on standard
output.
답변2
에이전트는 dbus를 통해 polkit 기관에 등록됩니다. dbus 트래픽을 가로챌 수 있다면 어떤 프록시가 등록되어 있는지 정확히 알 수 있습니다.
답변3
기반으로이 포럼 게시물, 이 패키지를 설치해야 합니다 policykit-desktop-privileges
.