पहले अपनी आवश्यकता का आश्वासन दें। आप जिस समस्या को हल करने की कोशिश कर रहे हैं, वह क्या है? आप उपयोगकर्ताओं को अपनी होम निर्देशिका छोड़ने से क्यों रोकना चाहते हैं? क्या यह नहीं है कि आप उन्हें विशिष्ट अन्य निर्देशिकाओं के माध्यम से अफवाह के लिए नहीं चाहते हैं - जैसे कि अन्य उपयोगकर्ताओं की होम निर्देशिकाएं?
उपयोगकर्ताओं को अपने घर निर्देशिका को छोड़ने से रोकना बहुत मुश्किल है। यह वास्तव में थोड़ा मूर्खतापूर्ण है, भी (स्पष्टीकरण इस प्रकार है)। उपयोगकर्ताओं को उन निर्देशिकाओं में प्रवेश करने से रोकना बहुत सरल है जिन्हें आप उन्हें दर्ज नहीं करना चाहते हैं।
सबसे पहले, हां आप उपयोगकर्ताओं को एक तथाकथित प्रतिबंधित शेल दे सकते हैं , देखें 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
में लिखना होगा। इसलिए, यदि आप किसी उपयोगकर्ता को उसकी होम डायरेक्टरी के लिए बाध्य करना चाहते हैं, तो आपको इसमें बहुत कुछ कॉपी करना होगा। वास्तव में, बहुत ज्यादा एक पूरी बेस फाइल सिस्टम - जो कि आपके पास पहले से ही है /
।