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.[...]
आप एक नई नीति फ़ाइल बना सकते हैं /usr/share/polkit-1/actions
com.ubuntu.pkexec.gedit.policy
निम्नलिखित xml कोड के नाम से जहाँ सबसे महत्वपूर्ण बात 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
नीति फ़ाइल से, निम्न विकल्प उपलब्ध हैं:
- नहीं : उपयोगकर्ता कार्रवाई करने के लिए अधिकृत नहीं है। इसलिए प्रमाणीकरण की कोई आवश्यकता नहीं है।
- हां : उपयोगकर्ता बिना किसी प्रमाणीकरण के कार्रवाई करने के लिए अधिकृत है।
- auth_self : प्रमाणीकरण की आवश्यकता है लेकिन उपयोगकर्ता को प्रशासनिक उपयोगकर्ता नहीं होना चाहिए।
- auth_admin : एक प्रशासनिक उपयोगकर्ता के रूप में प्रमाणीकरण की आवश्यकता होती है।
- auth_self_keep : के रूप में ही auth_self लेकिन, जैसे
sudo
, प्राधिकरण के लिए कुछ मिनट तक रहता है।
- विशेषाधिकार_आदमी_ प्रशासन : जैसे ही , पर_दोस्तों की तरह
sudo
, प्राधिकरण के लिए कुछ मिनट तक रहता है।
स्रोत: पोलकिट - संरचना - क्रियाएं
इसलिए, यदि आप Cort_admin_keep विकल्प का उपयोग करते हैं (या, जैसा कि लागू हो,) स्थितीय____ ), pkexec
कुछ समय के लिए फिर से पासवर्ड नहीं मांगेगा (डिफ़ॉल्ट रूप से यह समय 5 मिनट के लिए सेट है जैसा कि मैंने जांचा था)। यहां नुकसान यह है कि यह बात केवल एक के लिए लागू होती है - समान - आदेश / आवेदन और सभी उपयोगकर्ताओं के लिए मान्य (जब तक कि यह बाद के कॉन्फ़िगरेशन में अधिलेखित न हो)।
यदि अभी तक मौजूद नहीं है, तो कॉन्फ़िगरेशन फ़ाइल को कहाँ सहेजना है?
कॉन्फ़िगरेशन फ़ाइलों या पोलकिट परिभाषाओं को दो प्रकारों में विभाजित किया जा सकता है:
क्रियाएँ XML .policy फ़ाइलों में स्थित हैं /usr/share/polkit-1/actions
। प्रत्येक क्रिया में डिफ़ॉल्ट अनुमतियों का एक सेट होता है, (उदाहरण के लिए आपको GParted कार्रवाई का उपयोग करने के लिए एक व्यवस्थापक के रूप में पहचान करने की आवश्यकता होती है)। चूक को समाप्त किया जा सकता है, लेकिन कार्रवाई फ़ाइलों को संपादित करना सही तरीका नहीं है। इस नीति फ़ाइल का नाम इस प्रारूप में होना चाहिए:
com.ubuntu.pkexec.app_name.policy
प्राधिकरण नियम जावास्क्रिप्ट .rules फ़ाइलों में परिभाषित किए गए हैं। वे दो स्थानों पर पाए जाते हैं: 3 पार्टी पैकेज का उपयोग कर सकते हैं /usr/share/polkit-1/rules.d
(हालांकि कुछ भी करते हैं) और /etc/polkit-1/rules.d
स्थानीय कॉन्फ़िगरेशन के लिए है। .Rules फ़ाइलें उपयोगकर्ताओं के एक सबसेट को नामित करती हैं, क्रिया फ़ाइलों में निर्दिष्ट क्रियाओं में से एक (या अधिक) को संदर्भित करती हैं और यह निर्धारित करती हैं कि इन कार्यों को उन / उन उपयोगकर्ता (उपयोगकर्ता) द्वारा किस प्रतिबंध से लिया जा सकता है। एक उदाहरण के रूप में, एक नियम फ़ाइल GParted का उपयोग करते समय एक व्यवस्थापक के रूप में प्रमाणित करने के लिए सभी उपयोगकर्ताओं के लिए डिफ़ॉल्ट आवश्यकता को समाप्त कर सकता है, यह निर्धारित करते हुए कि कुछ विशिष्ट उपयोगकर्ता की आवश्यकता नहीं है। या GParted का उपयोग करने की अनुमति नहीं है।
स्रोत: पोलकिट - संरचना
कॉन्फ़िगर करने के लिए कोई GUI अनुप्रयोग है pkexec
उपयोग ?
मैं अब तक (18.01.2014) जो कुछ भी जानता हूं, उसमें से कुछ भी ऐसा नहीं है। अगर भविष्य में मुझे कुछ मिलेगा, तो मैं इस जवाब को भी अपडेट करना नहीं भूलूंगा।