প্রমাণীকরণের জন্য আমি কীভাবে একটি ডায়ালগ কল করব?


13

আমি পাইথনে wx মডিউলটি ব্যবহার করে একটি গি প্রোগ্রাম লিখছি। প্রোগ্রামে যখনই আমি কোনও ফোল্ডারে অ্যাক্সেস করি যার জন্য রুট সুবিধার দরকার হয় তবে এটি টার্মিনালে পাসওয়ার্ড জিজ্ঞাসা করে তবে আমি পাসওয়ার্ডটি প্রবেশ করানোর জন্য এবং তাকে অনুমোদনের জন্য ডায়লগটি ব্যবহারকারীর কাছে প্রদর্শন করতে চাই। কীভাবে সেই ডায়লগটি কল করবেন এবং ব্যবহারকারীকে উবুন্টুতে প্রমাণীকরণ করবেন?


আপনি লিখেছেন যে এটি "টার্মিনালে পাসওয়ার্ড জিজ্ঞাসা করে" তার অর্থ কি আপনি পাইথন থেকে সুডো টার্মিনাল কমান্ড কল করছেন?
TLE

আমি মনে করি এর পরিবর্তে আপনার পলিসিকিট ব্যবহার করা উচিত sudo, তবে কীভাবে তা ব্যাখ্যা করার জন্য আমার কাছে পাইথন বা পলিসিকিট সম্পর্কে ভাল জ্ঞান নেই। সম্ভবত অন্য কেউ পারে।
এলিয়াহ কাগন

আপনি কিভাবে এটি ব্যবহার করতে যাচ্ছেন? সবেমাত্র একটি কমান্ড কার্যকর করা হচ্ছে
ডেইজি

উত্তর:


9

আপনার প্রশ্নের উত্তর দেওয়ার জন্য স্ট্যাকওভারফ্লোতে দুটি আলাদা প্রশ্নোত্তর রয়েছে: এখানে এবং এখানে

উভয় উত্তর কমান্ড ব্যবহার করে gksudo(ইতিমধ্যে @ খেমার দ্বারা উল্লিখিত)। যদি আপনি চালনা করেন 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 sudo একই কাজ করে।

Https://help.ubuntu.com/commune/RootSudo# গ্রাফিকাল_সুডো দেখুন


যেহেতু এটি পাইথনের উবুন্টু প্রোগ্রামিং সম্পর্কিত একটি প্রশ্ন, আপনি কীভাবে পাইথন প্রোগ্রামে gksu/ ব্যবহার করবেন তা দেখানোর জন্য একটি কোড উদাহরণ দিতে পারেন gksudo?
এলিয়াহ কাগান

@ এলিয়াকাগান আমি একটি উদাহরণ দিয়ে একটি উত্তর লিখেছিলাম যা আশা করি আপনার দাবিগুলি পূরণ করে! :)
লুব্রিক

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))
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.