क्या एक nologin उपयोगकर्ता के साथ ssh पर कमांड निष्पादित की जा सकती है?


13

यदि कोई उपयोगकर्ता है तो loginShell=/sbin/nologinक्या यह अभी भी संभव है

ssh user@machine [command]

यह मानते हुए कि उपयोगकर्ता के पास अपने होम डायरेक्टरी में उचित ssh कीज़ हैं जिन्हें प्रमाणित करने के लिए उपयोग किया जा सकता है?

मेरा लक्ष्य उपयोगकर्ता को एक नोगलिन के रूप में रखना है, लेकिन फिर भी नेटवर्क पर कुछ अन्य मशीनों पर कमांड निष्पादित करने में सक्षम है ('सुडो -यू' के माध्यम से इसके उपयोग के समान), और मुझे आश्चर्य है कि क्या यह एक उचित पाठ्यक्रम है।


1
यह काम करना चाहिए। commandचलाया जाता है बजाय लॉगिन खोल के।
ओरियन

1
यह /sbin/nologinशेल के रूप में कॉन्फ़िगर करने के उद्देश्य को पराजित करता है । यदि आपकी चिंता खाते की सुरक्षा की है तो पासवर्ड ऑर्ट को अक्षम करना और ssh कीज़ का उपयोग करना पर्याप्त है।
क्रीक

@ यहां लॉगिन शैल और शेल के अन्य उदाहरणों के बीच अंतर है। इसलिए, वह जो पूछ रहा है वह जरूरी नहीं कि / sbin / nologin के उद्देश्य को पराजित करे। यह हो सकता है कि वह एक लॉगिन शेल के संदर्भ में कुछ काम करना चाहता हो।
माइकल मार्टिनेज

7
@ ओरियन गलत। लॉगिन शेल द्वारा कमांड को निष्पादित किया जाता है।
गिल्स एसओ- बुराई को रोकना '

@MichaelMartinez अपने उदाहरण के संदर्भ में, यदि उपयोगकर्ता का शेल है /sbin/nologinतो उपयोगकर्ता मशीन पर कमांडों को लॉगिन या निष्पादित करने में सक्षम नहीं होगा। cronjobs को उपयोगकर्ता के रूप में चलाया जा सकता है और sftpइसे सत्र खोलने के लिए कॉन्फ़िगर किया जा सकता है, लेकिन ssh के माध्यम से एक शेल खोलने से ऐसा नहीं होगा
क्रीक

जवाबों:


17

/sbin/nologinउपयोगकर्ता के शेल के रूप में सेट करना (या /bin/falseया /bin/true, जो लगभग बराबर हैं ) उपयोगकर्ता को किसी भी कमांड को चलाने के लिए लॉगिंग से मना करता है। SSH हमेशा कमांड चलाने के लिए उपयोगकर्ता के लॉगिन शेल को आमंत्रित करता है, इसलिए आपको लॉगिन शेल को एक पर सेट करने की आवश्यकता है जो कुछ कमांड चलाने में सक्षम है।

कई प्रतिबंधित गोले हैं जो उपयोगकर्ताओं को केवल कुछ कमांड चलाने की अनुमति देते हैं। उदाहरण के लिए rssh और scponly इस तरह दोनों के गोले है कि उपयोगकर्ता कुछ पूर्वनिर्धारित आदेशों को चलाने के लिए (जैसे की अनुमति देते हैं scp, sftp-server, rsync, ...)। लिनक्स में उपयोगकर्ता की पहुंच को भी प्रतिबंधित करें और क्या आपको एससीपी के लिए एक शेल की आवश्यकता है?


धन्यवाद, मैंने खाते को एक लॉगिन शेल देने के लिए इस्तीफा दे दिया ताकि यह रिमोट कमांड चला सके। बेहतर समाधान शायद वर्तमान उपयोगकर्ता के रूप में ssh होगा और ssh कमांड के लिए sudo -u कहता है, लेकिन यह पूरी तरह से मेरे मामले में लागू नहीं है।
सेंटिमेन

1

ऐसा लगता है कि उत्तर नहीं है।

ssh user@machine [command]

ssh कुंजियों के स्थान पर केवल परिणाम हैं:

This account is currently not available

कमांड निष्पादित करने के बजाय, लगता है कि मुझे इसे बैश करने के लिए उपयोग करना होगा।


-4

मुझे नहीं पता कि क्या यह संभव है (हालांकि परीक्षण करना आसान होना चाहिए) लेकिन एक ऐसी विशेषता है जो संभवतः आपके प्रश्न का एक निश्चित तरीके से उत्तर देती है और किसी भी मामले में आपकी समस्या का समाधान करती है।

आप कुंजी लाइन में एक कमांड जोड़ सकते हैं authorized_keys। उस स्थिति में इस कमांड को निष्पादित किया जाता है, और कुछ नहीं। मुझे लगता है कि यह काम करता है /sbin/nologinक्योंकि शेल को वैसे भी अनदेखा किया जाना चाहिए।

लेकिन आपको अपने द्वारा दी जाने वाली प्रत्येक कमांड के लिए एक अलग कुंजी की आवश्यकता होगी।


दुर्भाग्य से मुझे जिस समाधान की आवश्यकता है वह इससे अधिक लचीला होगा
शिमिमाने

यदि परीक्षण करना आसान है, तो आपको उत्तर लिखने से पहले इसका परीक्षण करना चाहिए।
माइकल मार्टिनेज

@MichaelMartinez यह पूछने से पहले आसान परीक्षण करने के लिए प्रश्नकर्ता का काम है। यह ध्यान देना मुश्किल नहीं है कि इस सवाल का जवाब नहीं दिया गया, लेकिन इस समस्या के लिए एक प्रस्ताव बना दिया, जिसने सवाल का कारण बना। जो उत्तर के रूप में पूरी तरह से उपयुक्त है। इसको नीचा दिखाना सिर्फ बेवकूफी है। क्या आपने पहले पैराग्राफ के बिना उत्तर की आलोचना की होगी? बिल्कुल सही।
हौके लैजिंग

3
authorized_keysलॉगिन शेल द्वारा कमांड को निष्पादित किया जाता है, इसलिए नहीं, यह काम नहीं करता है (अतिरिक्त गैर-तुच्छ कॉन्फ़िगरेशन के बिना नहीं)। (कैसे एक गलत जवाब "बेवकूफ" downvoting है कृपया? दूसरों का सम्मान ।)
गाइल्स 'तथाकथित बंद किया जा रहा बुराई'
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.