मैं एक उपयोगकर्ता बनाना चाहूंगा जो केवल एक ही काम कर सकता है: ssh के माध्यम से एक स्क्रिप्ट निर्दिष्ट करें (और स्क्रिप्ट पर कमांड लाइन तर्क) जो एक विशेष फ़ोल्डर में रहता है (इस प्रश्न के प्रयोजनों के लिए हमें इसे कॉल करें /local/remote_only_scripts/foo
) और उस स्क्रिप्ट को निष्पादित करें और यह आउटपुट है।
चीजों के कुछ उदाहरणों को स्पष्ट करने के लिए मैं नहीं चाहता कि उपयोगकर्ता ऐसा करने में सक्षम हों:
- स्थानीय रूप से खाते में लॉग इन करें। लॉगिन आवेदन है
/bin/login
। यह/local/remote_only_scripts/foo
फ़ोल्डर में एक स्क्रिप्ट नहीं है , इसलिए उपयोगकर्ता द्वारा नहीं बुलाया जाना चाहिए। - खाते में दूरस्थ रूप से प्रवेश करें। फिर से लॉगिन (यह है कि क्या ssh द्वारा कहा जाता है?) संबंधित फ़ोल्डर में एक स्क्रिप्ट नहीं है।
- निर्देशिका की सामग्री को सूचीबद्ध करें। ls में है
/bin/ls
। यह उपयुक्त निर्देशिका में एक स्क्रिप्ट नहीं है। - उस निर्देशिका में एक फ़ाइल संपादित करें। emacs, vi, gedit अधिकांश अन्य संपादक उस निर्देशन में स्क्रिप्ट नहीं हैं।
- उस निर्देशिका में एक फ़ाइल की सामग्री देखें।
- उस निर्देशिका में एक फ़ाइल निष्पादित करें जिसे उसे निष्पादित करने की अनुमति नहीं है।
ध्यान दें कि ये उदाहरण हैं कई अन्य क्रियाएं हैं जो मैं नहीं चाहता कि उपयोगकर्ता करने में सक्षम हो। एक कार्रवाई पर विचार करने में, पूछें "क्या यह एक स्क्रिप्ट द्वारा किया जा रहा है /local/remote_only_scripts/foo
?" यदि उत्तर नहीं है तो उपयोगकर्ता को ऐसा करने में सक्षम नहीं होना चाहिए। यदि जवाब हां है तो उपयोगकर्ता को ऐसा करने में सक्षम होना चाहिए।
पुनश्च: मुझे स्पष्ट करें कि "उपयोगकर्ता जोड़ने" से मेरा क्या मतलब है। मेरा मतलब कुछ ssh सबसिस्टम में उपयोगकर्ता जोड़ने से नहीं है। बल्कि मेरा मतलब है कि उपयोगकर्ता को कंप्यूटर सिस्टम में जोड़ना। इसलिए, उदाहरण के लिए, मेरे पास एक सिस्टम है जो डेबियन स्टेबल चल रहा है, इसे इसे एड्रेस, www.hg.bar.com पर कॉल करें। मैं एक उपयोगकर्ता जोड़ना चाहता हूं (कुसेर के माध्यम से, उपयोगकर्ता-व्यवस्थापक या useradd या कुछ इसी तरह) उसे hg_guest कहते हैं। hg_guest स्थानीय रूप से लॉगिन नहीं कर सकता है या उपरोक्त सूची में कोई भी चीज़ नहीं कर सकता है। सभी hg_guest स्क्रिप्ट को "दूरस्थ रूप से" निष्पादित कर सकते हैं। मैंने कहा कि उसे ssh के माध्यम से ऐसा करने में सक्षम होना चाहिए, लेकिन अभी इसके बारे में सोचकर, शायद ssh का उपयोग करने की अनुमति देने से वह स्थानीय स्तर पर लॉगिन कर सकता है, इसलिए कुछ अन्य तंत्र की आवश्यकता हो सकती है।