ডিবিস এবং পলিসিকিট ব্যবহার করে রুট টাস্ক


10

এক পর্যায়ে আমার অ্যাপ্লিকেশনটির প্রশাসনিক কাজগুলি করা দরকার যেমন / / এ কোনও ফাইল তৈরি করা বা রুট প্রাইভেলিজ সহ কমান্ড চালানো।

আমি জানি কেবল একটি প্রশ্নোত্তর করতে পেরেছিলাম:

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 দিয়ে আমার প্রোগ্রাম শুরু করে আমার পূর্বের সমাধানটি / opt / এর বাইরে কাজ করে না, অবশেষে আমি ছাড়তে হয়েছিল এবং একটি হাজার পাসওয়ার্ড চেয়েছিলাম যাতে প্রোগ্রামটি কমপক্ষে প্রাথমিকের কাজটি করার জন্য পাসওয়ার্ড চায়? অ্যাপ্লিকেশন শোডাউনতে একটি টি-শার্ট।

আমি সমস্যাটি লক্ষ্য করিনি কারণ আমি প্রথমে একটি দ্রুত ভাগ করেছিলাম। সেখানে সবকিছু ঠিকঠাক কাজ করেছে। শুরুতে পাসওয়ার্ডের জন্য একবার জিজ্ঞাসা করুন। আমি এখন সম্পূর্ণ নিচে। অ্যাপশোডাউনের জন্য আমার অবদানটি ছিল https://launchpad.net/armorforge । ;-(


আমি মনে করি আপনি স্টাকওভারফ্লোতে আরও ভাল উত্তর পেতে পারেন। আপনার এই প্রশ্নটি সেখানে স্থানান্তরিত করার জন্য জিজ্ঞাসা করা উচিত।
jgomo3

উত্তর:


7

আপনার প্রথমে উপলব্ধি করা দরকার এমন একটি মৌলিক ধারণা রয়েছে: পলিসিকিট কেবল অনুমোদনের ব্যবস্থা করে, বিশেষাধিকার বৃদ্ধি নয়। পলিসিকিট প্রশ্নের উত্তর দেবে: "ব্যবহারকারী কি এই কাজটি করার জন্য অনুমোদিত?", তবে এটি আপনাকে মূল সুযোগগুলি দেবে না।

সাধারণভাবে ব্যবহৃত মডেলটি হ'ল ডিবিস সিস্টেম পরিষেবা তৈরি করা, যা মূল সুবিধার সাথে চলে। এটি নন-রুট প্রক্রিয়াগুলি থেকে অনুরোধগুলি নেবে, সেই প্রক্রিয়াটি অনুরোধটি করার জন্য অনুমোদিত কিনা তা নির্ধারণের জন্য পলিসিকিট ব্যবহার করবে এবং তারপরে অনুরোধ করা টাস্কটি সম্পাদন করবে।

আমি কয়েক বছর আগে উবুন্টুফর্মস.আরজে পাইথনের সাথে পলিসিকিট এবং ডিবাসের উপর একটি টিউটোরিয়াল লিখেছিলাম । নীতিগুলি একই, যদিও এটির জন্য কিছু আপডেটের প্রয়োজন হতে পারে। আমার এখন বিছানায় যেতে হবে, তাই একবার দেখুন এবং এটি আপডেট করার প্রয়োজন আছে কিনা তা আমাকে জানান।


এটি কি ভার্চুয়ালবক্সকে নিয়মিত ব্যবহারকারীর অধীনে এক্সটেনশন প্যাকগুলি ইনস্টল করার অনুমতি হিসাবে ব্যবহার করা যেতে পারে?
গ্রিয়ু
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.