pkexec
জিইউআই অ্যাপ্লিকেশনগুলি চালানোর সময় ত্রুটিগুলি এড়াতে কীভাবে কনফিগার করবেন?
আমি দুটি সম্ভাব্য উপায় খুঁজে পেয়েছি:
আপনি দেখতে পারেন, নিম্নলিখিত ব্যবহার করে:
pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY gedit
আপনি কোন ত্রুটি পাবেন না। এবং এটি স্বাভাবিক কারণ man pkexec
এই বিষয়ে খুব স্পষ্ট:
[...] pkexec will not allow you to run X11 applications
as another user since the $DISPLAY and $XAUTHORITY environment
variables are not set.[...]
ফলস্বরূপ আপনি একটি ( স্থায়ী ) নাম (এটি সহজতম উপায়) তৈরি করতে পারেন :
alias pkexec='pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY'
অথবা, (আবার) যেমন man pkexec
বলেছেন:
[...] These two variables will be retained if the
org.freedesktop.policykit.exec.allow_gui annotation on an action is set
to a nonempty value; this is discouraged, though, and should only be
used for legacy programs.[...]
আপনি নীচের এক্সএমএল কোডটির /usr/share/polkit-1/actions
নামে একটি নতুন নীতি ফাইল তৈরি করতে পারেন com.ubuntu.pkexec.gedit.policy
যেখানে সর্বাধিক গুরুত্বপূর্ণ জিনিসটি org.freedesktop.policykit.exec.allow_gui
একটি অমূল্য মান সেট করা থাকে:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE policyconfig PUBLIC
"-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN"
"http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd">
<policyconfig>
<action id="com.ubuntu.pkexec.gedit">
<message gettext-domain="gparted">Authentication is required to run gedit</message>
<icon_name>gedit</icon_name>
<defaults>
<allow_any>auth_admin</allow_any>
<allow_inactive>auth_admin</allow_inactive>
<allow_active>auth_admin</allow_active>
</defaults>
<annotate key="org.freedesktop.policykit.exec.path">/usr/bin/gedit</annotate>
<annotate key="org.freedesktop.policykit.exec.allow_gui">true</annotate>
</action>
</policyconfig>
প্রথমবার কোনও কমান্ড প্রয়োগ করার পরে এটি পাসওয়ার্ড না চাইতে কীভাবে বলবেন?
এই তিনটি সেটিং ট্যাগ: allow_any
, allow_inactive
এবং allow_active
নীতি ফাইল থেকে নিম্নলিখিত বিকল্পগুলি উপলব্ধ রয়েছে:
- না : ব্যবহারকারী ক্রিয়াটি চালানোর জন্য অনুমোদিত নয়। প্রমাণীকরণের প্রয়োজন নেই।
- হ্যাঁ : ব্যবহারকারী কোনও প্রমাণীকরণ ছাড়াই ক্রিয়া চালানোর জন্য অনুমোদিত।
- auth_self : প্রমাণীকরণ প্রয়োজন তবে ব্যবহারকারীর প্রশাসনিক ব্যবহারকারী হওয়া দরকার না।
- auth_admin : প্রশাসনিক ব্যবহারকারী হিসাবে প্রমাণীকরণ প্রয়োজন।
- অ্যাথ_সেল্প_কিপ : অ্যাথ_লাইফের মতো একই তবে, অনুমোদনটি
sudo
কয়েক মিনিট স্থায়ী হয়।
- অ্যাথ_ডমিন_কিপ : অ্যাথ_অ্যাডমিনের মতো তবে তবে, অনুমোদনটি
sudo
কয়েক মিনিট স্থায়ী হয়।
উত্স: পোলকিট - গঠন - ক্রিয়া
সুতরাং, আপনি যদি auth_admin_keep বিকল্পটি ব্যবহার করেন (বা প্রযোজ্য হিসাবে, auth_self_keep ), pkexec
কিছু সময়ের জন্য আবার পাসওয়ার্ড জিজ্ঞাসা করবে না (ডিফল্টরূপে এই সময়টি আমার পরীক্ষার জন্য 5 মিনিটের মধ্যে সেট করা হয়েছে)। এখানে অসুবিধাটি হ'ল এই জিনিসটি কেবলমাত্র একটির জন্য - একই - কমান্ড / অ্যাপ্লিকেশনের জন্য প্রযোজ্য এবং সমস্ত ব্যবহারকারীর জন্য বৈধ (যদি এটি পরবর্তী কনফিগারেশনে বাতিল না করা হয়)।
কনফিগারেশন ফাইলটি বিদ্যমান না থাকলে কোথায় সংরক্ষণ করবেন?
কনফিগারেশন ফাইল বা পোলকিট সংজ্ঞা দুটি ধরণের মধ্যে বিভক্ত করা যেতে পারে:
পদক্ষেপ এক্সএমএল .policy অবস্থিত ফাইলগুলি সংজ্ঞায়িত করা হয় /usr/share/polkit-1/actions
। প্রতিটি ক্রিয়ায় এটির সাথে সংযুক্ত ডিফল্ট অনুমতিগুলির একটি সেট থাকে (যেমন, জিপিআর্টেড ক্রিয়াটি ব্যবহার করার জন্য আপনাকে প্রশাসক হিসাবে চিহ্নিত করতে হবে)। ডিফল্টগুলি বাতিল করা যেতে পারে তবে অ্যাকশন ফাইলগুলি সম্পাদনা করা সঠিক উপায় নয়। এই নীতি ফাইলের নামের এই ফর্ম্যাটটি থাকা উচিত:
com.ubuntu.pkexec.app_name.policy
অনুমোদনের বিধিগুলি জাভাস্ক্রিপ্ট .rules ফাইলগুলিতে সংজ্ঞায়িত করা হয়। এগুলি দুটি স্থানে পাওয়া যায়: তৃতীয় পক্ষের প্যাকেজগুলি ব্যবহার করতে পারে /usr/share/polkit-1/rules.d
(যদিও কিছু হয় তবে) এবং /etc/polkit-1/rules.d
এটি স্থানীয় কনফিগারেশনের জন্য। .Rules ফাইলগুলি ব্যবহারকারীদের একটি উপসেটকে মনোনীত করে, ক্রিয়া ফাইলগুলিতে নির্দিষ্ট করা ক্রিয়াগুলির একটি (বা আরও) পড়ুন এবং সেইগুলি / সেই ব্যবহারকারীরা (গুলি) দ্বারা এই পদক্ষেপগুলি কী কী বিধিনিষেধ গ্রহণ করতে পারে তা নির্ধারণ করে। উদাহরণস্বরূপ, কোনও নির্দিষ্ট ব্যবহারকারীর দরকার নেই তা নির্ধারণ করে জিপিআর্ট ব্যবহার করার সময় একটি নিয়ম ফাইল সমস্ত প্রশাসকের জন্য প্রশাসক হিসাবে প্রমাণীকরণের জন্য ডিফল্ট প্রয়োজনটিকে অতিক্রম করতে পারে। বা জিপিআর্ট ব্যবহার করার অনুমতি নেই।
উত্স: পোলকিট - কাঠামো
pkexec
ব্যবহার কনফিগার করার জন্য কি কোনও জিইউআই অ্যাপ্লিকেশন রয়েছে ?
আমি যা জানি, এখন অবধি (18.01.2014) এর মতো কিছু নেই। ভবিষ্যতে যদি আমি কিছু খুঁজে পাই তবে আমি এই উত্তরটি আপডেট করতেও ভুলব না।