एक UNIX खाता बनाना जो केवल एक कमांड निष्पादित करता है


13

क्या सोलारिस में एक उपयोगकर्ता खाता बनाने का एक तरीका है जो उपयोगकर्ताओं को केवल एक कमांड चलाने की अनुमति देता है? कोई लॉगिन शेल या कुछ और नहीं। मैं संभवतः के साथ यह कर सकता है /usr/bin/falseमें /etc/passwdऔर बस के लिए उपयोगकर्ता मिलता है ssh <hostname> <command>, लेकिन वहाँ एक अच्छा तरीका यह करने के लिए है?

जवाबों:


15

यदि आप उपयोगकर्ता केवल ssh के माध्यम से कनेक्ट कर सकते हैं तो आप एक मजबूर कमांड का उपयोग कर सकते हैं। अनिवार्य रूप से, जब भी उपयोगकर्ता एक निश्चित कुंजी और एक निश्चित उपयोगकर्ता नाम के साथ ssh के माध्यम से जुड़ता है, तो आप उसे एक कमांड (या एक स्क्रिप्ट या) जिसे आप .ssh / अधिकृत_कीप में निर्धारित करते हैं, निष्पादित करने के लिए बाध्य करते हैं। उपयोगकर्ताओं द्वारा जारी किए गए कमांड को अनदेखा किया जाएगा।

उदाहरण के लिए:

# in .ssh/authorized_keys
command="cd /foo/bar && /path/to/scripts/my_script.sh arg1 arg2",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-rsa public_key

वैसे आप दोनों सही थे। मैंने जो किया वह एक स्क्रिप्ट बनाई गई थी जो प्रॉम्प्ट पर एक मेनू की आपूर्ति करती है और अधिकृत उपयोगकर्ता के लिए कुंजी के सामने सर्वर पर .ssh / अधिकृत_के लिए मजबूर चेक कमांड का उपयोग करती है। यह अब उसे सर्वर पर ssh करने में सक्षम बनाता है और प्रॉम्प्ट पर निष्पादित करने के लिए कई कमांड के साथ एक अच्छा मेनू दिया जाता है। और कुछ नहीं चलाया जा सकता। खुशी के दिन!
विल

2
संपादित; आपको एक मजबूर कमांड को सुरक्षित करने के लिए इन विकल्पों की आवश्यकता है: "नो-पोर्ट-फ़ॉरवर्डिंग, नो-एक्स 11-फ़ॉरवर्डिंग, नो-एजेंट-फ़ॉरवर्डिंग, नो-पीटीआई"।
तोबू

11

आप उस उपयोगकर्ता के शेल को केवल उस स्क्रिप्ट पर सेट कर सकते हैं जिस कमांड को आप अनुमति देना चाहते हैं: जब भी उपयोगकर्ता लॉग इन करता है, कमांड चलाया जाता है, तो उपयोगकर्ता लॉग आउट हो जाता है। और चूंकि "फुल शेल" नहीं है, इसलिए आपको फंकी सामान की कोशिश करने वाले उपयोगकर्ता से निपटने की ज़रूरत नहीं है;)


0

यदि आप RBAC के साथ ऐसा कर सकते हैं और उपयोगकर्ता को एक विशेषाधिकार प्राप्त शेल (pfsh, pfcsh, या pfksh) दे रहे हैं और उपयोगकर्ता के लिए एक प्रोफ़ाइल बना रहा है, तो मुझे चलाने की अनुमति होगी।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.