2010-11-06 7 views
6

मेरे पायथन प्रोग्राम का हिस्सा व्यवस्थापक पहुंच की आवश्यकता है। gksudo कमांड के समान जीयूआई पॉपअप का उपयोग करके मैं रूट विशेषाधिकार कैसे प्राप्त कर सकता हूं?एक ग्राफिकल सूडो के माध्यम से पाइथन में रूट विशेषाधिकार कैसे प्राप्त करें?

मुझे केवल अपने कार्यक्रम के एक छोटे से हिस्से के लिए रूट विशेषाधिकारों की आवश्यकता है, इसलिए केवल एक विशेष कार्य के लिए विशेषाधिकार होना बेहतर होगा।

gksudo(my_func, 'description of why password is needed') 

उत्तर

3

आप यहाँ दो विकल्प हैं:

आप कार्यक्रम का हिस्सा बनाने के लिए की आवश्यकता होगी, जो रूट की आवश्यकता है विशेषाधिकार एक अलग फाइल और फिर इस तरह फ़ाइल निष्पादित करें:

>>> import subprocess 
>>> subprocess.call(['gksudo','python that_file.py']) 

जो पासवर्ड संकेत को लाने और that_file.py रूट के रूप में चलेंगे

तुम भी है कि एक कार्यक्रम से रूट के रूप में चलाया जा सकता है की आवश्यकता होती है शुरू करें और बस कार्यक्रम है उपयोगकर्ता से "gksudo python your_program.py" प्रारंभ से कमांड लाइन में जो स्पष्ट रूप से सबसे अच्छा विचार नहीं है यदि आपका प्रोग्राम सामान्य रूप से मेनू से लॉन्च होता है।

5

gksudo व्यवस्थापक विशेषाधिकारों के साथ चल रहे कार्यक्रमों लांच करने के लिए इस्तेमाल किया जा सकता:

मैं आशा करती हूं तरह कुछ करने के लिए सक्षम होने के लिए। आपके एप्लिकेशन का हिस्सा जिसे रूट के रूप में चलाने की आवश्यकता है, को कमांड लाइन से अलग प्रक्रिया के रूप में बुलाया जाना चाहिए। आप दोनों के बीच संचार के कुछ फार्म की जरूरत है, तो आप सॉकेट इस्तेमाल कर सकते हैं या एक फ़ाइल के लिए घड़ी, आदि

+1

लेकिन यदि आप सॉकेट का उपयोग करते हैं, तो सुनिश्चित करें कि कोई हमलावर gksudoed प्रोग्राम से कनेक्ट नहीं हो सका। आईएमएचओ, डीबीयूएस या तो (सत्र-विशिष्ट) का उपयोग करना बेहतर होगा। – thejh

+0

आपको इस विकल्प के साथ जाना चाहिए, आपको 'os.system' का उपयोग करने के बजाय' subprocess' मॉड्यूल का उपयोग करना चाहिए। http://docs.python.org/library/subprocess.html –

संबंधित मुद्दे