मैं प्रमाणीकरण के लिए संवाद कैसे कहूं?


13

मैं अजगर में wx मॉड्यूल का उपयोग करके एक गिनी कार्यक्रम लिख रहा हूं। प्रोग्राम में जब भी मैं किसी ऐसे फ़ोल्डर का उपयोग कर रहा हूं जिसे रूट विशेषाधिकार की आवश्यकता है तो यह टर्मिनल पर पासवर्ड पूछता है लेकिन मैं उपयोगकर्ता को पासवर्ड दर्ज करने और उसे प्रमाणित करने के लिए संवाद प्रदर्शित करना चाहता हूं। उस संवाद को कैसे कॉल करें और उपयोगकर्ता को ubuntu में प्रमाणित करें?


आप लिखते हैं कि यह "टर्मिनल पर पासवर्ड पूछता है" क्या इसका मतलब है कि आप अजगर से कमांडो टर्मिनल कमांड कह रहे हैं?
TLE

मुझे लगता है कि यह संभावना है कि आपको इसके बजाय पॉलिसीकीट का उपयोग करना चाहिए sudo, लेकिन मुझे यह समझाने का एक अच्छा उत्तर लिखने के लिए अजगर या पॉलिसीकीट का पर्याप्त ज्ञान नहीं है। शायद कोई और कर सकता है।
एलियाह कगन

आप इसका उपयोग कैसे करने जा रहे हैं? सिर्फ एक कमांड को क्रियान्वित
डेज़ी

जवाबों:


9

आपके प्रश्न का उत्तर देने वाले स्टैकओवरफ़्लो में दो अलग-अलग प्रश्नोत्तर हैं: यहाँ और यहाँ

दोनों उत्तर कमांड का उपयोग करते हैं gksudo(@khamer द्वारा पहले ही उल्लेख किया गया है)। यदि आप चलाते हैं gksudo command(अजगर के बिना भी) तो यह मूल रूप से वही sudoकरता है, लेकिन एक ग्राफिकल इंटरफ़ेस के साथ - यानी उपयोगकर्ता से पासवर्ड के लिए पूछें और फिर कमांड को रूट के रूप में चलाएं यदि उपयोगकर्ता sudoers फ़ाइल में है।

अजगर में लिंक किए गए उत्तरों से सुझाए गए समाधान को लागू करने के लिए, आप निम्न उदाहरण द्वारा दिखाए गए कुछ का उपयोग कर सकते हैं:

एक फ़ाइल बनाएँ run.py:

#!/usr/bin/python

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

और एक फ़ाइल create.py:

#!/usr/bin/python

# Create test file..
f = file("mytestfile", "w")

फिर चलाएं python run.pyऔर अपना पासवर्ड दर्ज करने के बाद रूट के स्वामित्व वाली एक फ़ाइल बनाई जाएगी। यदि आप चलाते हैं तो python create.pyयह आपके द्वारा स्वामित्व में होगा (स्क्रिप्ट चलाने से पहले फ़ाइल मौजूद नहीं होनी चाहिए)।


3

जबकि मुझे यकीन है कि एक कट्टरपंथी अजगर समाधान है, नीचे और गंदे संस्करण में gksudo का उपयोग करना है। gksudo वही काम करता है जो sudo करता है, सिवाय इसके कि यह उस कमांड के प्रमाणीकरण के लिए संवाद बनाता है जो आपने कमांड लाइन पर पूछने के बजाय उल्लेख किया था।

Https://help.ubuntu.com/community/RootSudo#Graphical_sudo देखें


चूंकि यह पायथन में उबंटू के लिए प्रोग्रामिंग के बारे में एक सवाल है, तो क्या आप पायथन प्रोग्राम में उपयोग gksu/ उपयोग करने के लिए एक कोड उदाहरण दे सकते हैं gksudo?
एलिया कागन

@EliahKagan मैंने एक उदाहरण के साथ एक उत्तर लिखा, जो आपकी मांगों को पूरा करता है! :)
लुम्ब्रिक

0

इस स्क्रिप्ट को अपने कोड में डालें:

import os

Password = raw_input('Please enter your root password!')

sudo_command = '<your command>'

execute = os.system('echo %s|sudo -S %s' % (Password, sudo_command))
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.