सबसे पहले, अनुमतियाँ। जब आप एक नया खाता बनाते हैं ( adduserडेबियन-आधारित सिस्टम पर, वैसे भी - दूसरों को थोड़ा अलग हो सकता है), तो आपको एक नया उपयोगकर्ता और एक नया समूह मिलता है। आपको उपयोगकर्ता के लिए एक घर निर्देशिका भी मिलती है। इस नए उपयोगकर्ता के पास अपने होम डायरेक्टरी पर उपयोगकर्ता और समूह पढ़ने / लिखने की अनुमति होगी। वे विश्व-पठनीय के रूप में निर्दिष्ट कुछ भी एक्सेस करने में सक्षम होंगे, और विश्व-लेखन के लिए कुछ भी संशोधित कर सकते हैं।
जहां तक मैं जानता हूं, पारंपरिक पोसिक्स सिस्टम प्रणाली का उपयोग करके विशेष रूप से एक उपयोगकर्ता या समूह को विश्व-पठन / लेखन अनुमतियों से बाहर करना संभव नहीं है । हालाँकि, आप अधिक उन्नत ACL (जैसे Windows 'NTFS, यदि आप उस से परिचित हैं) को सक्षम कर सकते हैं, जो आपको विशिष्ट अस्वीकृत अनुमतियाँ सेट करने की अनुमति देता है।
एक वैकल्पिक विधि एक कस्टम लॉगिन शेल सेट करना है , chshकमांड का उपयोग करके या संशोधित करके /etc/passwd। जब वे लॉग इन करते हैं, तो यह 'शेल' उपयोगकर्ता के इनपुट को उसके मानक इनपुट के रूप में पुनर्निर्देशित किया जाएगा, और इसके मानक आउटपुट / त्रुटि को टर्मिनल आउटपुट पर रीडायरेक्ट किया जाएगा। आप सिस्टम पर किसी भी निष्पादन योग्य होने के लिए इस 'शेल' को सेट कर सकते हैं , जिसमें (लेकिन केवल अपने सी प्रोग्राम, बैश / पाइथन / पर्ल स्क्रिप्ट आदि) शामिल हैं।
कुछ तरीके हैं जिनसे आप ऐसा कर सकते हैं। आप लॉगिन शेल को एक स्क्रिप्ट के रूप में सेट कर सकते हैं जो कि बस जो भी डेटा आप चाहते हैं उसे आउटपुट करता है, और कोई इनपुट नहीं लेता है। यह एसएसएच सत्र को बंद करते हुए, केवल डेटा को आउटपुट करता है और बाहर निकलता है। यह सबसे सुरक्षित तरीका है, हालांकि उतना लचीला नहीं है।
वैकल्पिक रूप से, आपके पास एक स्क्रिप्ट कुछ इनपुट ले सकती है, और उस इनपुट का उपयोग करके निर्धारित करें कि क्या प्रिंट करना है। आप यह कैसे करते हैं यह आप पर निर्भर है - यदि आप एक bashस्क्रिप्ट का उपयोग करते हैं , तो आप readएक caseबयान या बयानों की एक श्रृंखला के साथ उपयोग कर सकते हैं if। आपको सावधान रहना होगा कि आप सीधे उपयोगकर्ता से किसी भी असंगत कमांड को नहीं चलाते हैं, हालांकि - और अविश्वसनीय इनपुट लेने के साथ अन्य संभावित सुरक्षा मुद्दे हैं। उदाहरण के लिए, आप इनपुट ले सकते हैं processesऔर आउटपुट वापस कर सकते हैं ps -e।
यदि आप चाहते हैं, और सी के साथ अच्छे हैं, तो आप bashकिसी अन्य निर्देशिका तक पहुंचने में सक्षम नहीं होने के लिए खुद को संशोधित भी कर सकते हैं - लेकिन इनपुट लेने या केवल विशिष्ट श्वेतसूची आदेशों को फ़िल्टर करने के बजाय यह अधिक सुरक्षित है कि कौन सी निर्देशिकाओं को प्रतिबंधित करने की कोशिश की जाए। आप पहुंच सकते हैं। एक जटिल सी प्रोग्राम को संशोधित करने की तुलना में एक त्वरित शेल स्क्रिप्ट लिखना भी आसान है।