गैर-व्यवस्थापक उपयोगकर्ताओं को apt या rpm के माध्यम से संकुल स्थापित करने की अनुमति दें?


13

क्या यह संभव है कि गैर-रूट उपयोक्ता को apt या rpm के प्रयोग से संकुल प्रणाली को अधिष्ठापित करने की अनुमति देता है?

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


4
यदि आप पैकेजों को स्थापित करने के लिए विशेषाधिकार देते हैं, तो आपको अनिवार्य रूप से पूर्ण व्यवस्थापक अधिकार दिए गए हैं, क्योंकि एक उपयोगकर्ता बस एक सेट्यूइड-रूट शेल के साथ एक पैकेज स्थापित कर सकता है।
camh

@camh hrm .. आपके पास एक वीटो रिपॉजिटरी हो सकती है, और उपयोगकर्ताओं को नए रिपॉजिटरी जोड़ने की अनुमति नहीं है, नहीं? या apt आपको .deb फ़ाइलों से पैकेज स्थापित करने की अनुमति देता है? मुझे एहसास हुआ कि एक रेपो रेपो शायद लंबे समय में अधिक काम आएगा, यह एक वैचारिक सवाल है :)
n

1
apt-secure(8)कहते हैं: "apt-get वर्तमान में केवल अहस्ताक्षरित अभिलेखागार के लिए चेतावनी देगा, भविष्य की रिलीज़ सभी स्रोतों को उनके डाउनलोड करने से पहले सत्यापित करने के लिए बाध्य कर सकती है"। एक हमला कितना परिष्कृत है, इसके आधार पर, रिपॉजिटरी स्रोत से कनेक्शन को हाइजैक करना और एक अविश्वसनीय पैकेज को इंजेक्ट करना संभव हो सकता है। हालाँकि, अधिक विवरण के लिए उस आदमी पृष्ठ को पढ़ें। आपके पास अपने थ्रेड मॉडल के लिए एक सुरक्षित पर्याप्त समाधान हो सकता है।
कैमह


जवाबों:


23

आप सूडो के साथ अनुमत कमांड निर्दिष्ट कर सकते हैं, आपको असीमित एक्सेस की अनुमति नहीं है, जैसे

username ALL = NOPASSWD : /usr/bin/apt-get , /usr/bin/aptitude

यह उपयोगकर्ता नाम sudo apt-getऔर sudo aptitudeबिना किसी पासवर्ड के चलने की अनुमति देगा लेकिन किसी भी अन्य कमांड को अनुमति नहीं देगा।

तुम भी उपयोग कर सकते हैं PackageKit के साथ संयुक्त PolicyKit sudo से नियंत्रण के कुछ और महीन स्तर के लिए।

पैकेज स्थापित करने / हटाने के लिए उपयोगकर्ताओं को अनुमति देना एक जोखिम हो सकता है। वे बहुत आसानी से एक प्रणाली को नॉनफंक्शनल रेंडर कर सकते हैं जैसे कि आवश्यक सॉफ्टवेयर जैसे libc6, dpkg, rpm आदि को अनइंस्टॉल करके, परिभाषित अभिलेखागार से मनमाना सॉफ़्टवेयर स्थापित करके हमलावरों को पुराने या शोषक सॉफ़्टवेयर स्थापित करने और रूट एक्सेस प्राप्त करने की अनुमति मिल सकती है। मेरी राय में मुख्य सवाल यह है कि आप अपने कर्मचारियों पर कितना भरोसा करते हैं?

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


मैंने इसे अपने प्रश्न से बाहर कर दिया, लेकिन क्या इसकी अनुमति देने से उत्पन्न सुरक्षा कटौती पर आपकी कोई टिप्पणी है? मेरा मतलब है, आप पैकेज रिपॉजिटरी को नहीं बदल सकते हैं, इसलिए आप शायद पूर्ण sudo पहुँच प्राप्त नहीं करने जा रहे हैं, लेकिन आप किसी भी फ़ाइल को एप्टीट्यूड (विकल्प> वरीयताएँ> "फ़ाइल को लॉग इन करने के लिए" का उपयोग करके लिख सकते हैं) कुछ गंभीर नुकसान का कारण। मैं पॉलिसीकीट के बारे में कम निश्चित हूं ...
naught101

1
@ naught101 ok मैंने सुरक्षा के बारे में कुछ टिप्पणियां जोड़ीं। JFTR पॉलिसीकीट के रूप में रूट एक्सेस प्रदान नहीं करेगा क्योंकि यह सूडो का उपयोग करने की तुलना में कम समस्याग्रस्त होगा
उलरिच डांगेल

ऐसे तरीके हैं जिनसे आप dpkg या rpm से शेल चला सकते हैं। उदाहरण के लिए: dpkg प्रॉम्प्ट फ़ाइल में बदलाव होने पर संकेत देगा कि कौन सी झड़प हुई है, जिसमें से एक विकल्प स्थिति की जांच करने के लिए एक शेल शुरू करता है । यह सूडो के माध्यम से चलने पर जड़ के रूप में एक खोल शुरू कर देगा। इसी तरह यदि आप एक संपादक को टूल से चला सकते हैं, क्योंकि अधिकांश संपादक आपको उनके भीतर से मनमाने ढंग से शेल कमांड चलाने देते हैं (जैसे; vi में कमांड)।
डेविड गार्डनर

@ n-0101 मैं एक RPM के माध्यम से विशेषाधिकार वृद्धि के लिए परीक्षण करूंगा जिसमें एक SUID शेल शामिल है क्योंकि यह ब्लॉग बताता है: nosedookie.blogspot.com/2011/07/… एक शेल इंजेक्शन परिदृश्य में, हालांकि, जहां sudoer खाते से समझौता किया गया है, एक को कम कर सकता है NOPASSWD के विपरीत, पासवर्ड दर्ज करने की आवश्यकता के लिए sudo के माध्यम से विशेषाधिकार वृद्धि ।
मैट

7

aptdcon

आदमी पृष्ठों से:

aptdcon: aptdaemon का उपयोग करके, पैकेज प्रबंधन कार्यों को करने की अनुमति देता है, जैसे सॉफ़्टवेयर स्थापित करना या निकालना। इस प्रोग्राम को चलाने के लिए कोई रूट होने की आवश्यकता नहीं है।


1
यद्यपि आपको aptdcon को चलाने के लिए रूट / sudo विशेषाधिकारों की आवश्यकता नहीं है, यह तुरंत अनपेक्षित उपयोगकर्ताओं के लिए एक प्रमाणीकरण संवाद शुरू करता है - मैंने सिर्फ उबंटू पर परीक्षण किया। यदि आप विशेषाधिकार प्राप्त / अधिकृत उपयोगकर्ता नहीं हैं, तो यह पैकेजों को जोड़ता / हटाता नहीं है।
ऋषि

1
ऑपरेशन पर काम नहीं करता हैERROR: You are not allowed to perform this action. ('system-bus-name', {'name': ':1.716'}): org.debian.apt.install-or-remove-packages
जैकोपेन


1

मैंने भी कुछ ऐसा ही देखा, लेकिन कुछ भी दिखाई नहीं दिया, इसलिए मैंने इस आसान समाधान "सॉफ्टवेयरचैन" को कोडित किया।

https://github.com/alfem/softwarechannels

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

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

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

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