मैं उपयोगकर्ताओं को अपनी स्वयं की होम निर्देशिका के अलावा कुछ भी एक्सेस करने से कैसे रोक सकता हूं?


22

मैं उपयोगकर्ताओं को अपनी स्वयं की होम निर्देशिका के अलावा कुछ भी एक्सेस करने से कैसे रोक सकता हूं?

उदाहरण के लिए, मेरे पास एनटीएफएस विभाजन है /media/ntfs, जिसके तहत यदि उपयोगकर्ता ssh के माध्यम से लॉग इन करता है तो वह इस विभाजन तक पहुंच सकता है। मैं उपयोगकर्ताओं को cdअपनी होम निर्देशिका से कैसे अक्षम कर सकता हूं ?

जवाबों:


22

पहले अपनी आवश्यकता का आश्वासन दें। आप जिस समस्या को हल करने की कोशिश कर रहे हैं, वह क्या है? आप उपयोगकर्ताओं को अपनी होम निर्देशिका छोड़ने से क्यों रोकना चाहते हैं? क्या यह नहीं है कि आप उन्हें विशिष्ट अन्य निर्देशिकाओं के माध्यम से अफवाह के लिए नहीं चाहते हैं - जैसे कि अन्य उपयोगकर्ताओं की होम निर्देशिकाएं?

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

सबसे पहले, हां आप उपयोगकर्ताओं को एक तथाकथित प्रतिबंधित शेल दे सकते हैं , देखें man rbash। यह उन्हें cdकहीं और से रोक देगा , लेकिन केवल उस शेल के अंदर। यदि उपयोगकर्ता शुरू होता है viया nano(या फ़ाइल को खोलने में सक्षम कोई अन्य प्रोग्राम) वे फिर से सिस्टम पर कहीं भी फाइलें खोल सकते हैं। तथ्य की बात के रूप में, एक प्रतिबंधित खोल उदाहरण के लिए नहीं रोकता है cat /etc/passwd

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

दूसरी ओर, उपयोगकर्ताओं पर भरोसा किया जाता है : उन्हें उन्नत विशेषाधिकार के बिना प्रमाणित और चलाना पड़ता है । इसलिए फ़ाइल अनुमतियाँ उन्हें उन फ़ाइलों को बदलने से रोकने के लिए पर्याप्त होती हैं जो उनके पास नहीं होती हैं, और उन चीजों को देखने से जिन्हें उन्हें नहीं देखना चाहिए। किसी फ़ाइल की सामग्री को पढ़ने से उपयोगकर्ताओं को रोकने के लिए, इसके साथ विश्व-पठनीयता को हटा दें chmod o-r FILE। उपयोगकर्ताओं को एक निर्देशिका से बाहर रखने के लिए, इसे दुनिया के साथ दुर्गम बनाएं chmod o-rwx DIR

विश्व-पठनीयता हालांकि, अच्छे कारण के लिए डिफ़ॉल्ट है: उपयोगकर्ताओं को वास्तव में फ़ाइल सिस्टम पर अधिकांश सामान की आवश्यकता होती है। उपयोगकर्ताओं को उनके घरों में केवल इसलिए लॉक न करें क्योंकि बाहर रहस्य मौजूद हैं।

क्यों उपयोगकर्ताओं को उनके घर निर्देशिका में लॉक करना थोड़ा मूर्खतापूर्ण है

कुछ भी उपयोगी करने के लिए, उपयोगकर्ताओं को कमांड और एप्लिकेशन तक पहुंच की आवश्यकता होती है। ये निर्देशिकाओं में हैं जैसे /binऔर /usr/bin, इसलिए जब तक आप सभी आदेशों को वहां से अपने घर निर्देशिकाओं में कॉपी नहीं करते, तब तक उपयोगकर्ताओं को /binऔर उन तक पहुंच की आवश्यकता होगी /usr/bin। लेकिन यह केवल शुरुआत है। अनुप्रयोगों को पुस्तकालयों की आवश्यकता होती है /usr/libऔर /lib, जो बदले में सिस्टम संसाधनों तक पहुंच की आवश्यकता होती है, जो /devअंदर /etcऔर अंदर फ़ाइलों को कॉन्फ़िगर करने के लिए होते हैं /usr/share

यह केवल पढ़ने-लिखने का हिस्सा था। आवेदन भी चाहते हैं /tmpऔर अक्सर /varमें लिखना होगा। इसलिए, यदि आप किसी उपयोगकर्ता को उसकी होम डायरेक्टरी के लिए बाध्य करना चाहते हैं, तो आपको इसमें बहुत कुछ कॉपी करना होगा। वास्तव में, बहुत ज्यादा एक पूरी बेस फाइल सिस्टम - जो कि आपके पास पहले से ही है /


2
इससे मुझे कोई मतलब नहीं है, इसके कई कारण हो सकते हैं कि आप एक उपयोगकर्ता को केवल 1 फ़ोल्डर तक पहुंच क्यों चाहते हैं। एक उदाहरण 1 सर्वर से दूसरे में फ़ाइलों को स्थानांतरित करने के लिए पहुंच प्रदान कर सकता है। मुझे लगता है कि यह थोड़ा मूर्खतापूर्ण है कि कोई भी उपयोगकर्ता इसके बजाय पूर्ण प्रणाली को ब्राउज़ कर सकता है।
रिचर्ड

मेरे मामले में मैं उपकरणों के दूरस्थ प्रबंधन के लिए मशीन में उपकरणों को रिवर्स करने की अनुमति देने के लिए एक उपयोगकर्ता की स्थापना कर रहा हूं। इसलिए मैं उस उपयोगकर्ता खाते को यथासंभव सीमित करना चाहता हूं जब यह समझौता किया जाता है - मुझे बस सफल कनेक्शन की आवश्यकता है। मैं यह नहीं कहूंगा कि यह मूर्खतापूर्ण है, यह सिर्फ इस बात पर निर्भर करता है कि आप क्या हासिल करना चाहते हैं।
जॉन

7

मैं उपयोगकर्ता के लिए पहुँच प्रदान करने के लिए आवश्यक samपर /var/xyzअंदर अन्य फ़ोल्डर के केवल और ब्लॉक लिस्टिंग सामग्री/var/

मैंने निम्नलिखित अनुक्रमों का उपयोग किया:

setfacl -R -m user:sam:--- /var/

setfacl -m user:sam:rx /var/

setfacl -R -m user:sam:rwx /var/xyz/

इसलिए उपयोगकर्ता के अंतर्गत सूचीबद्ध निर्देशिकाओं को देख सकता है, /var/लेकिन सिवाय उप निर्देशिकाओं के अंतर्गत सामग्री नहीं देख सकता /var/xyz


2
Askubuntu में आपका स्वागत है! मैं इसे घर निर्देशिकाओं के संबंध में पूछे गए प्रश्न के उत्तर के रूप में नहीं देखता हूं।
एल्डर गीक

3
@ElderGeek ओपी केवल एक ही कमांड का उपयोग नहीं कर सकता, लेकिन होम निर्देशिका के लिए?
सेठ

@ सेठ हां, लेकिन क्या यह औसत उपयोगकर्ता के लिए स्पष्ट होगा?
एल्डर गीक

3
@ बुजुर्ग हाँ, मेरा मानना ​​है कि यह होगा। सही नहीं है, लेकिन फिर भी एक जवाब है
सेठ

1

अन्य निर्देशिकाओं, विशेष रूप से अन्य उपयोगकर्ताओं के घरेलू निर्देशिकाओं तक पहुंच को प्रतिबंधित करने के अलावा, मैं यह भी नहीं चाहता था कि उपयोगकर्ता ll /homeसिस्टम पर अन्य उपयोगकर्ताओं के नाम देखें और देखें।

इसे रोकने के लिए, रूट रन के रूप में chmod 701 /home। यह निश्चित रूप से /homeनिर्देशिका को "पढ़ने / लिखने / निष्पादित करने" को निश्चित रूप से मूल बनाता है , लेकिन बाकी सभी को केवल "निष्पादित" करता है। /homeअभी भी इसके लिए सुलभ है cd, लेकिन उपयोगकर्ता इसकी सामग्री को नहीं पढ़ सकते हैं- अन्य उपयोगकर्ताओं के होम फ़ोल्डर और इसलिए उपयोगकर्ता नाम।


यह, हालांकि सख्ती से सवाल का जवाब नहीं है, फिर भी बहुत दिलचस्प है ... ऐसी स्थिति में जब आप एक दूरस्थ सर्वर संचालित करते हैं जो क्लाइंट में भेज सकते हैं, यह बहुत अच्छा है। वे अन्य क्लाइंट उपयोगकर्ता नामों की गोपनीयता को बनाए रखते हुए, उनकी अपेक्षा के अनुसार आगे बढ़ सकते हैं।
जैक_हु
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.