2014-02-24 11 views
2

내 GUI가 사용자로 시작됩니다. 프로그램에 루트 권한으로 래퍼 스크립트를 호출하는 업데이트 메커니즘이 있습니다. 이를 위해 gksudo을 사용하기 전까지는 pkexec으로 바뀌 었습니다.개인 메시지를 사용하여 gksudo를 pkexec로 바꿉니다.

방금 ​​gksudo를 pkexec으로 바꾼 경우 제대로 작동합니다. 하지만 난 사용자에게 자신의 메시지를 갖고 싶습니다. 따라서 내가 수정하거나/폴킷-1/행동

내가이 프롬프트거야

pkexec <my-program> 

를 호출 할 때 내 문제가있다 는/usr/share에서 XML 정책 파일을 생성해야 를 참조하십시오. 세부 -> 작업 to org.freedesktop.policykit.exec.

enter image description here

내가이 XML 파일 (org.freedesktop.policykit.exec)에 액션 ID -entry을 배치하거나 내가 내 자신의 .policy 파일이 라는 이름의 생성해야 할 수행 com.myStuff.updater.policy/usr/share/polkit-1/actions으로?

<vendor>myStuff</vendor> 
    <vendor_url>http://myStuff.com</vendor_url> 
    <icon_name>myStuff</icon_name> 

    <action id="com.myStuff.updater"> 
    <description>My description</description> 
    <message>My message</message> 
    <defaults> 
     <allow_any>no</allow_any> 
     <allow_inactive>no</allow_inactive> 
     <allow_active>auth_self_keep</allow_active> 
    </defaults> 
    <annotate key="com.myStuff.updater.exec.path">/my/path/to/wrapper.sh</annotate> 
    <annotate key="com.myStuff.updater.exec.allow_gui">true</annotate> 
    </action> 

아니면 내가 내 모든 응용 프로그램은 pkexec의 .desktop - 파일에 전화를해야합니까?

난 강력하게 자신의 .policy 파일을 만들어 제시하고 여러 가지 이유로 혼자 org.freedesktop.policykit.exec을 떠나

답변

1

:

    등이 실제로 .desktop 파일, 터미널에서 특정 circunstances에서 예상대로 pkexec이 작동하지 않습니다

    입니다

  • 더블 포크에 관한 그놈 버그.

  • 자신의 .policy 파일을 사용하여 파일을 직접 편집하고 스크립트에 대한 암호가없는 루트 권한으로 구성 할 수도 있습니다! 그리고 그것은 매우 흥미로운 특징입니다!

  • 당신은 단순히 어디서든 작업 할 수 있도록 다른 명령으로, 필요 pkexec 또는 sudo 또는 아무것도를 앞에 추가하지 않으려면, 그 이름를 사용하여 스크립트를 호출 할 수

    .

gparted의 정책 파일을 템플릿으로 사용할 수 있습니다.