कुछ बिंदु पर मेरे आवेदन को प्रशासनिक कार्य करने की आवश्यकता है जैसे कि फाइल को / आदि में बनाना या रूट प्रिवलेज के साथ कमांड चलाना।
मुझे पता है कि सिर्फ एक प्रश्नोत्तर कर सकता है:
os.popen("pkexec foo bar")
लेकिन मुझे यह भी पता है कि यह ऐसा करने का सबसे अच्छा तरीका नहीं है। उपयोगकर्ता के लिए किसी प्रकार का कष्टप्रद, क्योंकि उसे हमेशा सत्र की तरह हैंडलिंग के बजाय अपना पासवर्ड पुन: दर्ज करने की आवश्यकता होती है।
मैं बहुत आशावादी था क्योंकि मुझे प्रामाणिकता के लिए अजगर का उदाहरण मिला ।
यह एक सरल उदाहरण है जो तुरंत काम करता है:
import dbus
bus = dbus.SystemBus()
proxy = bus.get_object('org.freedesktop.PolicyKit1', '/org/freedesktop/PolicyKit1/Authority')
authority = dbus.Interface(proxy, dbus_interface='org.freedesktop.PolicyKit1.Authority')
system_bus_name = bus.get_unique_name()
subject = ('system-bus-name', {'name' : system_bus_name})
action_id = 'org.freedesktop.policykit.exec'
details = {}
flags = 1 # AllowUserInteraction flag
cancellation_id = '' # No cancellation id
result = authority.CheckAuthorization(subject, action_id, details, flags, cancellation_id)
print result
मैं काफी भोला सोच रहा हूं कि प्राधिकरण के बाद मैं स्क्रिप्ट में कुछ os.popen () - कमांड के साथ जा सकता था। अब मैं बेहतर जानता हूं :(
मैं ऊपर के उदाहरण में टपल-परिणाम देख सकता हूं, लेकिन आगे के प्रलेखन में मुझे इस बिंदु पर जाने के लिए एक कार्य कोड नहीं मिला।
मुझे इस परिणाम के साथ क्या करना है? मुझे उन कार्यों को करने की आवश्यकता कैसे हो सकती है? क्या उपलब्ध तरीकों की पेशकश करने वाले उदाहरणों के साथ एक अजगर संदर्भ है?
मैंने dir () का उपयोग करके प्राधिकरण के तरीकों को सूचीबद्ध करने की कोशिश की, लेकिन कोई सुराग नहीं मिला कि कैसे चलें।
मैं वास्तव में अपने कमबैक का उपयोग करने से बचना चाहता हूं लेकिन यह मेरा आखिरी उपाय होगा। कृपया इसे सही तरीके से करने में मेरी मदद करें :)
धन्यवाद एवं शुभकामनाएँ
आंद्रे
संपादित करें:
चूँकि मैं इसे काम में नहीं लाया था और gksu के साथ अपना कार्यक्रम शुरू करने से मेरा पूर्व समाधान / ऑप्ट / से बाहर काम नहीं करता है, मुझे अंत में कम से कम प्राप्त करने के लिए प्रोग्राम संबंधी अल्पज्ञात कार्य करने के लिए पासवर्ड मांगने के लिए एक हजार मांगना और लागू करना पड़ा। ऐप शोडाउन में एक टी-शर्ट।
मैंने इस समस्या पर ध्यान नहीं दिया क्योंकि मैंने पहली बार जल्दी से शेयर किया था। वहां सब कुछ सही काम हुआ। शुरुआत में पासवर्ड के लिए एक बार पूछना। मैं अभी पूरी तरह से नीचे हूँ। AppShowdown के लिए मेरा योगदान https://launchpad.net/armorforge था । ;-(