কীভাবে পেকেক্সেক কনফিগার করবেন?


32

এই প্রশ্ন এবং উত্তর পড়া:

আমাকে আরও একটি এনেছে যা সেই আদেশের নতুন ব্যবহারকারীদের জন্য সমস্যা তৈরি করবে:

  • কীভাবে pkexecসহজ ব্যবহারের জন্য কনফিগার করবেন?

উদাহরণস্বরূপ নিম্নলিখিত কাজগুলি করার সময়:

(টার্মিনালে একটি ফাইল খোলা)

pkexec nano /etc/mysql/my.cnf  

(জিইউআইতে একটি ফাইল খোলা হচ্ছে)

pkexec gedit /etc/mysql/my.cnf  

শেষটি নিম্নলিখিত ত্রুটিটি পায়:

 pkexec must be setuid root

এখন এটি আমার কাছে নিম্নলিখিত প্রশ্নগুলি নিয়ে এসেছে:

  1. pkexecএটি এড়াতে কীভাবে কনফিগার করবেন? একই জিনিসটি করার সময় কীভাবে আচরণ sudo/ gksuআচরণ করার অনুরূপ (তারা কেবল পাসওয়ার্ডের জন্য জিজ্ঞাসা করে)।

  2. যদি প্রযোজ্য হয়, প্রথমবার কোনও কমান্ড প্রয়োগ করার পরে (বা কনফিগারযোগ্য হলে প্রথম কমান্ড সহ) পাসওয়ার্ড না চাইতে এটি কীভাবে বলবেন?

  3. কনফিগারেশন ফাইলটি বিদ্যমান না থাকলে কোথায় সংরক্ষণ করবেন?

  4. pkexecব্যবহার (পলিসি কিট) কনফিগার করার জন্য কি কোনও জিইউআই অ্যাপ রয়েছে ?


1
১৩.০৪-এ উবুন্টু ব্যবসায়ের যত্ন নেওয়ার ক্ষেত্রে আমি জিডিট এবং নটিলাসের জন্য এটি করি। এখানে দুর্দান্ত কাজ করে তবে উত্তর হিসাবে পোস্ট করবেন না কারণ উবুন্টু যত্ন নেওয়ার সময় পর্যন্ত এটি আমার সমাধান। ubuntuforums.org/...
ডগ

হুম, কোনও মন্তব্য যুক্ত করতে পারে না - সুতরাং একটি উত্তরটি অবলম্বন করতে হবে ... ব্যবহার করে: ওরফে pkexec = 'pkexec env DISPLAY = $ DISPLAY XAUTHORITY = $ XAUTHORITY' এর অর্থ লগইন গি কমান্ডের পরিবর্তে এনভির পথ ফেরায় শেষ পর্যন্ত মৃত্যুদন্ড কার্যকর করা হচ্ছে। "Env DISPLAY = $ DISPLAY XAUTHORITY = $ XAUTHORITY" ব্যবহারের ব্যবস্থা করার কোনও উপায় কি যাতে পেকেক্সেক গুই শেষ পর্যন্ত সম্পাদিত হওয়ার আদেশের পথে ফিরে আসে?

উত্তর:


39

pkexecজিইউআই অ্যাপ্লিকেশনগুলি চালানোর সময় ত্রুটিগুলি এড়াতে কীভাবে কনফিগার করবেন?

আমি দুটি সম্ভাব্য উপায় খুঁজে পেয়েছি:

  1. আপনি দেখতে পারেন, নিম্নলিখিত ব্যবহার করে:

    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'
    
  2. অথবা, (আবার) যেমন 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) এর মতো কিছু নেই। ভবিষ্যতে যদি আমি কিছু খুঁজে পাই তবে আমি এই উত্তরটি আপডেট করতেও ভুলব না।


4
কি সুন্দর উত্তর !! আপনাকে অনেক ধন্যবাদ. এখন আমি বুঝতে পারি যে আমি কেন doublecmdরুট প্রাইভেলিজ দিয়ে চালাতে পারিনি, কারণ আমার সাথে পরিবেশ রফতানি করার দরকার ছিল DISPLAY & XAUTHORITY!! শুধু ছোট প্রশ্ন: লেখার নীতিমালার মধ্যে কি কোনও পার্থক্য আছে বা কেবলমাত্র pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY doublecmdসর্বকালের মতো একটি প্রোগ্রাম চালানোর জন্য?
ইলিয়া রোস্তভটসেভ

@ ইলিয়ারোস্টভটসেভ এই আমি ভাবছি, pkexecএমন অনিরাপদ হয়ে উঠবে যেন এমন উরফ দিয়ে gksudoচালানো হবে? হতে পারে, একটি উপনামের পরিবর্তে এটি মূল অধিকার সহ একটি স্ক্রিপ্ট হতে পারে, নিরাপদ হতে পারে?
কুম্ভ শক্তি

@ অ্যাকুরিয়াস পাওয়ার কীভাবে আপনি দেখছেন যে এটি অনিরাপদ হতে পারে? আপনি অবশ্যই চেষ্টা করতে পারেন, তবে আমি নিশ্চিত নই। সমস্যা দেখা দেয় যখন আপনাকে জিইআইআই (এক্স সার্ভার) ব্যবহার করতে হবে যা 'আপনি' এর অধীনে চলে এবং অন্য একটি জিইউআই প্রোগ্রাম যা রুট হিসাবে চালানো দরকার। চারপাশে খেলুন এবং পোস্ট-ব্যাক দয়া করে, যদি আপনি কিছু খুঁজে পান।
ইলিয়া রোস্তভটসেভ

ইউটিপিকের উপর @ radu-rtopdeanu auth_admin_keepকাজ করছে বলে মনে হচ্ছে না। যদি আমি গুই থেকে সিন্যাপটিক শুরু করি (যা সমান pkexec synaptic) এটি প্রতিবারের জন্য পাসওয়ার্ড চাইবে। কোন ধারণা কেন?
খুরশিদ আলম


0

Radu এর উত্তর ছাড়াও আমি ওরফে pkexec ব্যবহার করবেন, কিন্তু gksudo

কেন? আপনার স্ক্রিপ্টটি পুনরায় লেখার দরকার নেই।

আমি নিম্নলিখিত কনফিগারেশন ব্যবহার:

  • একটি টার্মিনাল খুলুন
  • cd /usr/local/bin
  • sudo gedit gksudo ("gksudo" নামে নতুন ফাইল তৈরি করুন
  • নিম্নলিখিত বিষয়বস্তু লিখুন:

    • pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY $@

    • ( $@শেষে ভুলে যাবেন না This এটি সমস্ত পরামিতি পুনর্নির্দেশের জন্য)

  • সংরক্ষণ করুন এবং ছেড়ে দিন

  • ফাইলটি কার্যকর করতে সক্ষম করুন: chmod 755 gksudo
  • এখন আপনার সিস্টেমে স্থায়ীভাবে একটি সম্পূর্ণ কার্যকরী gksudo কমান্ড পাওয়া উচিত।

ডকুমেন্টেশন কারণে, আমি লিখব, আমি কী চেষ্টা করেছি এবং কার্যকর হয়নি:

  • ওরফে pkexec = 'pkexec env [...]'
  • ওরফে gksudo = 'pkexec [...]'
    • স্থায়ী ছিল না এবং শুধুমাত্র একটি একক টার্মিনালে ছিল
  • উপন্যাস যুক্ত ~/.bash_aliases
    • আপনি যদি প্রথম কোনও টার্মিনাল খোলেন তবে কাজ করে। স্ক্রিপ্টগুলি ডাবল ক্লিক করলে, কাজ করে না not
  • প্যারামিটারগুলি ( ln -s pkexec [...]) দিয়ে পেক্সেক্সে একটি লিঙ্ক তৈরি করুন
    • দ্রুত গুগল করার পরে মনে হচ্ছে লিনাক্স লিঙ্কগুলিতে প্যারামিটার সমর্থন করে না
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.