एक उपयोगकर्ता को कुछ अन्य उपयोगकर्ताओं के घर निर्देशिकाओं को पढ़ने की अनुमति दें


10

मैं सिस्टम एडमिनिस्ट्रेशन में नया हूं और मेरे पास अनुमति संबंधी प्रश्न है। मैं एक समूह कहा जाता है administration। अंदर administrationसमूह, मैं उन है user1, user2, user3, superuser। सभी उपयोगकर्ता administrationसमूह में हैं। अब, मुझे उपयोगकर्ता superuserको /homeअन्य उपयोगकर्ताओं की निर्देशिका देखने में सक्षम होने के लिए अनुमति देने की आवश्यकता है । हालांकि, मैं नहीं चाहता user1, user2, user3खुद के अलावा अन्य किसी भी अन्य उपयोगकर्ता के घर को देखने के लिए। (यह है, user1केवल user1घर और इतने पर देखने में सक्षम होना चाहिए )।

मैंने उपयोगकर्ताओं और समूहों को बनाया है और सभी उपयोगकर्ताओं को समूह को सौंपा है। मुझे superuserअब के लिए अनुमतियाँ कैसे निर्दिष्ट करनी चाहिए ?

दूसरे शब्दों में, मैं दो समूह (कहने NormalUsersऔर Superuser) होने के बारे में सोच रहा हूं । NormalUsersसमूह उन होगा user1, user2और user3Superuserसमूह केवल उपयोगकर्ता होगा Superuser। अब, मुझे Superuserसमूह में उपयोगकर्ताओं की फ़ाइलों पर पूर्ण पहुँच की आवश्यकता है NormalUsers। क्या लिनक्स में यह संभव है?



अपने पिछले प्रश्न में, मैं / etc / sudoers फ़ाइल को संपादित करने और उपयोगकर्ता को आंशिक व्यवस्थापक के रूप में बनाने से अधिक चिंतित था। यहां, मैं स्थानीय उपयोगकर्ता की अनुमतियों को संशोधित करने का प्रयास कर रहा हूं। हाँ, यह वही है जो हासिल करने की कोशिश कर रहा है, लेकिन मैं यहाँ एक अलग तरीका अपनाने की कोशिश कर रहा हूँ।
रमेश

जवाबों:


10

यदि उपयोगकर्ता सहयोगी हैं, तो आप एक्सेस कंट्रोल लिस्ट (ACL) का उपयोग कर सकते हैं । user1(और दोस्तों) के घर निर्देशिका पर एक एसीएल सेट करें जो अनुदान का उपयोग करने के लिए पढ़ता है superuser। नई बनाई गई फ़ाइलों के लिए डिफ़ॉल्ट ACL भी सेट करें, और मौजूदा फ़ाइलों पर ACL भी।

setfacl -R -m user:superuser:rx ~user1
setfacl -d -R -m user:superuser:rx ~user1

user1 अगर वह चाहे तो अपनी फाइलों में ACL बदल सकता है।

यदि आप हमेशा superuserपढ़ने के लिए user1फाइल देना चाहते हैं , तो आप विभिन्न अनुमतियों के साथ, bindfs के साथ उपयोगकर्ताओं की होम निर्देशिकाओं का एक और दृश्य बना सकते हैं ।

mkdir -p ~superuser/spyglass/user1
chown superuser ~superuser/spyglass
chmod 700 ~superuser/spyglass
bindfs -p a+rX-w ~user1 ~superuser/spyglass/user1

~ Superuser / spyglass / user1 के माध्यम से एक्सेस की गई फाइलें विश्व-पठनीय हैं। अनुमतियों के अलावा, होम निर्देशिका ~superuser/spyglass/user1का एक दृश्य है user1। चूंकि superuserएकमात्र उपयोगकर्ता है जो एक्सेस कर सकता है ~superuser/spyglass, केवल superuserइससे लाभ उठा सकता है।


मेरे सिस्टम पर, अनुमतियाँ और उपयोगकर्ता नाम बदली गई हैं setfacl -R -m user:superuser:rx ~user1:।
औरेलिन ओम्स

10

आप एक विशेष समूह को एक मनमानी समूह तक पहुंच प्रदान करने के लिए एसीएल का उपयोग कर सकते हैं।

उदाहरण के लिए, यदि आप भागते हैं setfacl -m g:dba:rwx /home/foo, तो dba समूह के सदस्यों की उस पर rwx अनुमतियाँ होती हैं, इस बात की परवाह किए बिना कि कौन सी समूह निर्देशिका का स्वामी है।

आप संभवतः "डिफ़ॉल्ट" एसीएल (निर्देशिका के अंदर नव-निर्मित वस्तुओं के लिए एसीएल) को भी सेट करना चाहेंगे, जिसमें यह अनुमति भी शामिल हो।


हाँ, बिल्कुल..मुझे भी यही पता चला लेकिन फिर भी यकीन नहीं होता कि क्या LDAP उपयोगकर्ताओं के लिए सर्वर में ACLs देना एक अच्छा विचार है।
रमेश

@ रमेश, यदि वे सिस्टम पर उपयोगकर्ता हैं (क्योंकि आप nss-ldap, sssd, आदि का उपयोग कर रहे हैं), तो मुझे यकीन नहीं है कि यह ठीक क्यों नहीं होगा।
derobert

मैं परीक्षण बिस्तर में इसे दोहराने की कोशिश कर रहा था। जब मैं उपयोगकर्ता (उदाहरण के लिए फू) के रूप में प्रवेश कर रहा हूं, तो मुझे एक चेतावनी संदेश दिखाई दे रहा है "अनुमतियों को 644 पर सेट किया जाना चाहिए"। मेरा मानना ​​है कि चेतावनी को नजरअंदाज किया जा सकता है। लेकिन, मैं नहीं चाहता कि लैब उपयोगकर्ता यह जानें कि उनके उपयोगकर्ता खातों से छेड़छाड़ की गई है। जब मैं आरडब्ल्यूएक्स को सेटफैक्लल कमांड में आर में बदल देता हूं, तो मैं फू की निर्देशिका को देखने में सक्षम नहीं हूं।
रमेश

2
@ रमेश आपको वास्तव में निर्देशिकाओं के माध्यम से जाने के लिए + x की आवश्यकता है। मुझे यकीन नहीं है कि आपको क्या बता रहा है कि एक निर्देशिका 644 होनी चाहिए, यह मूर्खतापूर्ण है, यह 755 या समान होना चाहिए। लेकिन किसी भी तरह से, उपयोगकर्ता को ls के अनुमति क्षेत्र में एक + दिखाई देगा, और इसे देखने के लिए getfacl चला सकता है - इसका रहस्य नहीं।
derobert

ठीक है, मुझे चेतावनी संदेश मिल रहा था, उपयोगकर्ता की $ HOME निर्देशिका को उपयोगकर्ता के स्वामित्व में होना चाहिए और अन्य उपयोगकर्ताओं द्वारा लिखित नहीं होना चाहिए। मैंने सेटलैक कमांड में लिखित अनुमति को हटा दिया है और अब मुझे चेतावनी संदेश दिखाई नहीं देता है।
रमेश

0

दुर्भाग्य से, वेनिला लिनक्स पर सीधे ऐसा करने का कोई तरीका नहीं है।

आप आंशिक-व्यवस्थापक के लिए सुडोयर्स में एक नया समूह बनाने में सक्षम हो सकते हैं जो स्वीकार्य आदेशों की एक सफेद सूची के साथ आप उन्हें चलाने की अनुमति देना चाहते हैं।

हालाँकि, आप जो पूछ रहे हैं, उसे प्राप्त करने के लिए, आपको जो भी चाहिए उसे प्राप्त करने के लिए आपको अपरमोर या SELinux का उपयोग करना होगा। दुर्भाग्य से, इन उपकरणों में से कोई भी स्थापित करना और उपयोग करना आसान नहीं है, और उदाहरण यहां एक त्वरित उत्तर के दायरे से बाहर हैं।


1
लिनक्स ने कुछ समय के लिए ACLs का समर्थन किया है। एसीएल आपको ऐसा करने देते हैं।
derobert

हाँ, मैंने अभी उस समाधान को पाया और उत्तर को अद्यतन किया। हालाँकि, मैं अभी भी नहीं जानता कि क्या यह सर्वर में इस्तेमाल किया जा सकता है और वह भी LDAP उपयोगकर्ताओं के लिए।
रमेश

@derobert मुझे जो समझ में आया है, उसे एक्सेस सीमित करने के लिए ACLs का उपयोग करते समय sudo के माध्यम से किसी को रूट स्तर की अनुमति देना असंभव है। आपको इसे प्राप्त करने के लिए SELinux या किसी अन्य MAC का उपयोग करना होगा।
स्विस

1
मुझे लगता है कि जब ओपी उपयोगकर्ता को "सुपरयुसर" कहता है, तो उसका मतलब है कि शाब्दिक रूप से - जड़ नहीं।
derobert
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.