pkexec
GUI 응용 프로그램을 실행할 때 오류가 발생하지 않도록 구성하는 방법은 무엇입니까?
가능한 두 가지 방법을 찾았습니다.
보시다시피 다음을 사용하십시오.
pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY gedit
오류가 발생하지 않습니다. 그리고 이것은 man pkexec
이 문제에서 매우 분명 하기 때문에 정상적인 것입니다 .
[...] pkexec will not allow you to run X11 applications
as another user since the $DISPLAY and $XAUTHORITY environment
variables are not set.[...]
결과적으로 ( 영구 ) 별명을 작성할 수 있습니다 ( 가장 간단한 방법 임).
alias pkexec='pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY'
또는 (다시) 다음과 같이 man pkexec
말합니다.
[...] These two variables will be retained if the
org.freedesktop.policykit.exec.allow_gui annotation on an action is set
to a nonempty value; this is discouraged, though, and should only be
used for legacy programs.[...]
가장 중요한 것은 비어 있지 않은 값 으로 설정 하는 내부에 다음 XML 코드 로 /usr/share/polkit-1/actions
이름이 지정된 새 정책 파일을 만들 수 있습니다 .com.ubuntu.pkexec.gedit.policy
org.freedesktop.policykit.exec.allow_gui
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE policyconfig PUBLIC
"-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN"
"http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd">
<policyconfig>
<action id="com.ubuntu.pkexec.gedit">
<message gettext-domain="gparted">Authentication is required to run gedit</message>
<icon_name>gedit</icon_name>
<defaults>
<allow_any>auth_admin</allow_any>
<allow_inactive>auth_admin</allow_inactive>
<allow_active>auth_admin</allow_active>
</defaults>
<annotate key="org.freedesktop.policykit.exec.path">/usr/bin/gedit</annotate>
<annotate key="org.freedesktop.policykit.exec.allow_gui">true</annotate>
</action>
</policyconfig>
처음 명령에 암호를 적용한 후 암호를 묻지 않도록하는 방법은 무엇입니까?
이 세 가지 설정 태그 : allow_any
, allow_inactive
및 allow_active
정책 파일에서 다음 옵션을 사용할 수 있습니다 :
- no : 사용자에게 조치를 수행 할 권한이 없습니다. 따라서 인증이 필요하지 않습니다.
- yes : 사용자는 인증없이 작업을 수행 할 권한이 있습니다.
- auth_self : 인증이 필요하지만 사용자는 관리 사용자 일 필요는 없습니다.
- auth_admin : 관리자 인증이 필요합니다.
- auth_self_keep :와 동일 auth_self 같은,하지만
sudo
, 승인이 몇 분 동안 지속됩니다.
- auth_admin_keep :와 동일 auth_admin 같은,하지만
sudo
, 승인이 몇 분 동안 지속됩니다.
출처 : Polkit-구조-조치
따라서 auth_admin_keep 옵션 (또는 해당되는 경우 auth_self_keep )을 사용 pkexec
하면 얼마 동안 비밀번호를 다시 묻지 않습니다 (기본적으로이 시간은 확인한대로 5 분으로 설정 됨). 여기서 단점은 동일한 명령 / 응용 프로그램에만 적용 할 수 있으며 모든 구성에 적용 할 수 있다는 것입니다 (나중에 구성 할 때가 아니라면).
구성 파일이 아직없는 경우 어디에 저장합니까?
구성 파일 또는 폴킷 정의는 두 가지 종류로 나눌 수 있습니다.
작업 은에 위치한 XML .policy 파일에 정의되어 있습니다 /usr/share/polkit-1/actions
. 각 작업에는 기본 권한 집합이 첨부되어 있습니다 (예 : GParted 작업을 사용하려면 관리자로 식별해야 함). 기본값을 무효화 할 수 있지만 조치 파일을 편집하는 것은 올바른 방법이 아닙니다. 이 정책 파일의 이름은 다음 형식이어야합니다.
com.ubuntu.pkexec.app_name.policy
권한 부여 규칙 은 JavaScript .rules 파일에 정의되어 있습니다. 타사 패키지는 사용할 수 /usr/share/polkit-1/rules.d
있지만 /etc/polkit-1/rules.d
로컬 구성을위한 것입니다. .rules 파일은 사용자의 하위 집합을 지정하고 작업 파일에 지정된 작업 중 하나 이상을 참조하고 해당 사용자가 수행 할 수있는 제한 사항을 결정합니다. 예를 들어 규칙 파일은 GParted를 사용할 때 모든 사용자가 관리자로 인증해야하는 기본 요구 사항을 무시하여 특정 사용자가 필요하지 않은 것으로 판단 할 수 있습니다. 또는 GParted를 전혀 사용할 수 없습니다.
출처 : Polkit-구조
pkexec
사용법 을 구성 할 수있는 GUI 응용 프로그램이 있습니까?
내가 아는 것부터 지금까지 (18.01.2014)는 이런 식으로 존재하지 않습니다. 앞으로 뭔가를 발견하면이 답변도 업데이트하는 것을 잊지 않을 것입니다.