मैं गैर-रूट उपयोगकर्ताओं के लिए सॉफ़्टवेयर स्थापित करने के लिए सॉफ़्टवेयर केंद्र कैसे सेट कर सकता हूं?


47

मैं गैर-रूट उपयोगकर्ताओं को अपने पासवर्ड में टाइप किए बिना उबंटू रिपो से सामान स्थापित करने की अनुमति देने के लिए सॉफ्टवेयर सेंटर कैसे सेट कर सकता हूं?

मुझे सुरक्षा निहितार्थ के बारे में पूरी जानकारी है, और मैं जोखिम लेने को तैयार हूं। फेडोरा 12 कुछ इस तरह से भेज दिया। (पॉलिसीकीट विन्यास को संशोधित करके, मेरा मानना ​​है)


5
यह ध्यान रखना महत्वपूर्ण है कि फेडोरा ने भी आकाश में नीचे गिरने के बाद इसका समर्थन किया।
निकोलस नाइट

हाँ, मुझे याद है कि। यह वास्तव में केवल एक या दो उपयोगकर्ताओं के साथ डेस्कटॉप कंप्यूटर पर ही समझ में आता है।
स्नोस्टॉर्म

सॉफ़्टवेयर सेंटर जैसे कुछ ऐप-मार्केट सॉफ़्टवेयर को ध्यान में रखते हुए सिस्टम रिपॉजिटरी को बदलने की अनुमति देता है। पैकेजों की एक स्व-सेवा जोखिम भरा है, लेकिन अविश्वसनीय पैकेज स्रोतों को जोड़ने वाले उपयोगकर्ता वास्तव में खतरनाक हैं।
अल्फांसो ईएम

जवाबों:


36

आप उपयोगकर्ता केंद्र द्वारा उपयोग किए जाने वाले उपयुक्त बैकएंड का उपयोग करने की अनुमति देने के लिए पॉलिसीकीट अनुमतियों को संशोधित कर सकते हैं।

dpkg --listfiles aptdaemonदिखाता है कि /usr/share/polkit-1/actions/org.debian.apt.policyaptdaemon बैकएंड पर संभव कार्यों को निर्दिष्ट करने वाली फ़ाइल है।

उस फ़ाइल में देखते हुए, < action id="">टैग संभावित कार्यों को निर्दिष्ट करते हैं। आप शायद org.debian.apt.install-packagesउपयोगकर्ताओं को संग्रह से नए पैकेजों को स्थापित करने की अनुमति देना चाहते हैं , और org.debian.apt.update-cacheउपयोगकर्ताओं को पैकेज सूचियों को अपडेट करने की अनुमति देना चाहते हैं।

देखें man pklocalauthorityकि कौन से दस्तावेज़ पॉलिसीकीट कार्रवाइयों पर स्थानीय अनुमतियाँ सेट करें। निम्नलिखित में डालने से /etc/polkit-1/localauthority/50-local.d/10-allow-users-to-install.pklaकोई भी उपयोगकर्ता अपने पासवर्ड (भले ही वे एडमिन ग्रुप में न हों) टाइप करने के बाद और कोई भी पासवर्ड टाइप किए बिना पैकेज कैश को अपडेट करने के बाद स्थानीय मशीन में लॉग इन करने की अनुमति देगा।

[Untrusted Install]
Action=org.debian.apt.install-or-remove-packages
ResultyAny=no
ResultInactive=no
ResultActive=auth_self

[Untrusted Update]
Action=org.debian.apt.update-cache
ResultAny=no
ResultInactive=no
ResultActive=yes

कुबंटू की नीतियां (कम से कम नेट्टी और वनरिक में) हैं/usr/share/polkit-1/actions/org.kubuntu.qaptworker.policy
लेकेनस्टाइन


जीवन रक्षक - चीयर्स मेट! मुझे Identity=*यह काम करने के लिए जोड़ना पड़ा , askubuntu.com/a/123260 से अनुकूलित किया गया । इसके अलावा, उदाहरण के लिए /var/log/auth.log(या किसी अन्य लॉग फाइल) में अधिक पॉलिसी किट लॉग आउटपुट प्राप्त करने का कोई तरीका है ? मुझे केवल authentication failsसंदेश मिलते हैं , लेकिन कोई कारण नहीं कि यह विफल रहा ...
ssc

10

मुझे नहीं लगता कि वर्तमान में यह जीयूआई के माध्यम से ऐसा करना संभव है, लेकिन निम्नलिखित को काम करना चाहिए, भले ही यह एक प्रकार का कुदाल हो। YMMV।

निम्नलिखित पंक्ति को / etc / sudoers में जोड़ें ( sudo visudoफ़ाइल को संपादित करने के लिए उपयोग करें):

%packageinstallers ALL = NOPASSWD: /usr/bin/software-center /usr/bin/apt-get

तब आपको केवल विशिष्ट उपयोगकर्ताओं को packageinstallersसमूह में बनाना और जोड़ना होगा :

$ sudo addgroup packageinstallers
$ sudo adduser jdoe packageinstallers

अब jdoeनिम्नलिखित कर सकते हैं:

$ sudo apt-get install <some-package>

और आप सॉफ़्टवेयर केंद्र के लिए डेस्कटॉप मेनू आइटम को संपादित कर सकते हैं ताकि यह software-centerकमांड को प्रीपेडिंग करने के लिए कॉल करे gksudo

पॉलिसीकीट आपको सूदो के बिना ऐसा करने की अनुमति दे सकता है, लेकिन यह इस बिंदु पर मेरी समझ से परे है।


क्या यह उन्हें सिनैप्टिक या एप्टीट्यूड से स्थापित करता है, या सिर्फ एप्टीट्यूड प्राप्त करता है?
स्नोस्टॉर्म

यदि आप सूची में "/ usr / bin / synaptic" जोड़ना चाहते हैं, तो यह होगा। वास्तव में, आप शायद सूची में "/ usr / बिन / सॉफ्टवेयर-केंद्र" जोड़ सकते हैं और यह काम करेगा। हालांकि इसका परीक्षण नहीं किया गया है, मुझे बताएं कि क्या यह काम करता है और मैं उत्तर को अपडेट करूंगा।
लफाराँ

मैं कोशिश करूँगा कि :)
२०:०६ पर

इसके लिए यह आवश्यक होगा कि उपयोगकर्ता सॉफ्टवेयर केंद्र को सुडो के साथ चलाना जानते हैं, या आप .desktop फ़ाइल को संशोधित कर सकते हैं। आप क्या चाहते हैं करने के लिए PolicyKit को कैसे ट्वीक करें, इस पर मेरा जवाब देखें।
RAOF

सहमत, कि एक बेहतर समाधान होगा।
लैफ़रोन

5

RAOF का उत्तर केवल उबंटू पर लागू होता है। कुबंटु QAptWorker को बैकेंड के रूप में उपयोग करता है (नट्टी और वनरिक के लिए मनाया गया)। गैर-रूट संस्थापन के लिए अनुमति देने के लिए, /etc/polkit-1/localauthority/50-local.d/10-allow-non-root-install-packages.pklaयुक्त बनाएँ :

[Update Software Sources]
Action=org.kubuntu.qaptworker.updateCache
ResultAny=no
ResultInactive=no
ResultActive=yes

[Install Software]
Action=org.kubuntu.qaptworker.commitChanges
ResultAny=no
ResultInactive=no
ResultActive=auth_self

मैं कुछ गैर-व्यवस्थापक उपयोगकर्ताओं को सीधे सॉफ्टवेयर एक्सेस की अनुमति नहीं देते हुए सॉफ्टवेयर स्थापित करने की अनुमति देना चाहता था। यह दोनों विन्यास समूहों में अगली पंक्तियाँ सम्मिलित करके पूरा किया गया था:

Identity=unix-user:some-non-admin-user

यदि कोई ऐसा समूह है जिसे अनुमति दी जानी चाहिए, तो unix-groupइसके बजाय उपयोग करें unix-user


नियमों को फिर से लागू करने के लिए, मैंने रिबूट किया। (एक फिर से लॉगिन शायद काम भी करेगा)
Lekensteyn

आपको यह कैसे करना चाहिए? यहां तक ​​कि sudo -iमेरे पास पहुंच भी नहीं है /etc/polkit-1/localauthority(Ubuntu 17.10): "निर्देशिका / आदि / पोलकिट -1 / स्थानीयता को संसाधित करने का प्रयास नहीं करेगा"
JHBonarius

5

यदि आपको पैकेज स्थापना की अनुमति / अस्वीकृति के लिए केवल सामान्य अनुमति की आवश्यकता है, तो PolicyKit पर जाएं।

दुर्भाग्य से PolicyKit को स्थापित करने के लिए पैकेज पर ठीक नियंत्रण नहीं है। यदि आप अपने उपयोगकर्ताओं को केवल एप्लिकेशन के प्रतिबंधित सेट को स्थापित करने की अनुमति देना चाहते हैं, तो आपको sudoसॉफ़्टवेयरचैन जैसे कुछ का उपयोग और इंस्टॉल करना चाहिए ...

मुझे भी कुछ ऐसा ही लग रहा था, लेकिन जब से मुझे कुछ नहीं मिला, मैंने इस आसान समाधान "सॉफ्टवेयरचैन" को कोडित कर दिया , यहाँ GitHub पर उपलब्ध है

आम (गैर-व्यवस्थापक) उपयोगकर्ताओं को प्रतिबंधित कैटलॉग से पैकेज स्थापित करने की अनुमति देने के लिए यह एक बहुत ही सरल प्रणाली है।

बस एक साधारण पाठ फ़ाइल में 'चैनल' (संकुल के समूह) को परिभाषित करें और अपने उपयोगकर्ताओं को सॉफ़्टवेयरचैन लॉन्च करने की अनुमति दें।

वे केवल अपने यूनिक्स समूहों से मेल खाते चैनलों में पैकेज देखेंगे।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.