यह उपयोगकर्ता वर्तमान में उपलब्ध नहीं है - लेकिन इस उपयोगकर्ता द्वारा स्क्रिप्ट चलाने की अनुमति है


22

मैंने विशेष उपयोगकर्ता को / etc / passwd के साथ बनाया:

secure:x:2000:2000:secure:/bin:/usr/sbin/nologin

मैं इस उपयोगकर्ता को लॉगिन (कंसोल, ssh, ftp, किसी भी तरह से) की अनुमति नहीं देना चाहता।

वह केवल एक स्क्रिप्ट चलाने के लिए है:

sudo su secure -c '/home/someuser/secure.script'

लेकिन यह मुझे देता है This user is currently not available.। इस तरह से स्क्रिप्ट चलाने में सक्षम होने के लिए इसे कैसे सेट करें लेकिन सिस्टम के इस उपयोगकर्ता के किसी भी लॉगिन (कंसोल, ssh, ftp, ...) को रोकें?


मैंने देखा है कि जब मैं /usr/sbin/nologinकमांड-लाइन पर टाइप करता हूं , तो कंप्यूटर जवाब देता है This account is currently not available.


के बारे में sudo su, देखने के unix.stackexchange.com/questions/218169/...
Kusalananda

जवाबों:


27

यह एक विशिष्ट उपयोग का मामला है sudo

आप मिश्रण कर रहे हैं sudoजो किसी अन्य उपयोगकर्ता के रूप में कमांड चलाने की अनुमति देता है और अत्यधिक कॉन्फ़िगर करने योग्य है (आप चुनिंदा रूप से निर्दिष्ट कर सकते हैं कि कौन सा उपयोगकर्ता कौन से कमांड को किस उपयोगकर्ता के रूप में चला सकता है) और suयदि आप पासवर्ड जानते हैं (या रूट हैं) तो किसी अन्य उपयोगकर्ता पर स्विच करता है। suहमेशा लिखे गए शेल को चलाता है /etc/passwd, भले ही su -cइसका उपयोग किया जाता हो। इस वजह से suसंगत नहीं है /usr/sbin/nologin

आपको उपयोग करना चाहिए

sudo -u secure /home/someuser/secure.script

जैसा sudoकि विन्यास योग्य है आप नियंत्रित कर सकते हैं कि कौन इस कमांड का उपयोग कर सकता है और यदि उसे चलाने के लिए पासवर्ड दर्ज करना है। आप संपादित करने की जरूरत /etc/sudoersका उपयोग कर visudoयह करने के लिए। (संपादन / आदि / sudoers करते समय सावधानी बरतें और इसे करने के लिए हमेशा विज़ुओट का उपयोग करें। वाक्यविन्यास तुच्छ नहीं है और एक त्रुटि आपको अपने रूट खाते से लॉक कर सकती है।)

Sudoers में यह लाइन समूह में किसी को भी somegroupकमांड चलाने की अनुमति देती है secure:

%somegroup    ALL=(secure) /home/someuser/secure.script

यह समूह में किसी को भी पासवर्ड दर्ज किए बिना somegroupकमांड चलाने की अनुमति देता है secure:

%somegroup    ALL=(secure) NOPASSWD: /home/someuser/secure.script

यह बिना पासवर्ड डाले user1कमांड को चलाने की अनुमति देता है secure:

user1    ALL=(secure) /home/someuser/secure.script

13

मुझे पता चला कि मुख्य समस्या " /usr/sbin/nologin" है /etc/passwd जब मैं इस मामले में सु को निष्पादित करना चाहता हूं -s /bin/bash, तो इसके अंदर होना चाहिए , इसलिए उदाहरण के लिए:su -s /bin/bash -c '/home/someuser/secure.script' secure


1
हां, suडिफ़ॉल्ट रूप से / etc / passwd में लिखे गए शेल का उपयोग करता है। का उपयोग करना suकिसी अन्य उपयोगकर्ता से उपयोगकर्ता के रूप में लॉगिन करने का एक तरीका है। nologinसंदेश प्रिंट करता है "यह उपयोगकर्ता वर्तमान में उपलब्ध नहीं है।" और बाहर निकलता है। sudoएक कमांड को निष्पादित करने के लिए एक शेल का उपयोग नहीं करता है, इसलिए sudoबिना उपयोग suकरना भी काम नहीं करेगा। अधिक के लिए मेरा जवाब देखें sudo
cg909

2

suमें निर्दिष्ट शेल का उपयोग कर रहा है /etc/passwd

आप के suसाथ उपयोग करने की जरूरत नहीं है sudo

इसलिए के suसाथ मिश्रण नहीं है sudo: का उपयोग करें sudo -u secure '/home/someuser/secure.script'


-3

यह प्रश्न के लिए 100% प्रासंगिक नहीं हो सकता है, लेकिन ऐसे व्यक्ति को मदद कर सकता है, जिनके पास समान चेतावनी संदेश था This user is currently not available

1) अपने होस्टिंग कंपनी के साथ की जाँच करें अगर आप खोल पहुँच प्रदान किया गया है।

2) अगर आप CWP7 का उपयोग कर रहे हैं: शेल एक्सेस को चालू करें यहाँ छवि विवरण दर्ज करें


2
1) शेल का उपयोग स्पष्ट रूप से उपलब्ध है क्योंकि प्रश्न चल रहा है su, sudoऔर सभी प्रकार की अन्य चीजों के बारे में बात करता है। 2) इस सवाल का कोई संकेत नहीं है कि किसी भी फॉर्म के वेब कंट्रोल पैनल के पीछे सवाल इंस्टॉलेशन का है।
फिलिप केंडल

1
हां (यह एक प्रश्नोत्तर साइट के अलावा, एक मंच नहीं है)। लेकिन उपयोगी होने का बात यह है कि अपने जवाब वास्तव में प्रश्न के लिए प्रासंगिक है, और मुझे नहीं लगता कि यह है कि इस सवाल का जवाब यह सुनिश्चित किया जाता है है वास्तव में प्रासंगिक: पोस्टर स्पष्ट रूप से खोल पहुंच पहले से ही है, तो कैसे एक नियंत्रण कक्ष के माध्यम पर यह मोड़ हैं (जो मौजूद नहीं हो सकता है) समस्या का समाधान?
फिलिप केंडल

3
@ शापसीयर: ध्यान दें कि यह प्रश्न किसी ऐसे व्यक्ति से संबंधित है जिसने स्वयं ही एक नया, विशेष उपयोगकर्ता बनाया है। इस "थ्रेड" (प्रश्न) के उत्तर को उस प्रश्न की स्थिति को संबोधित करना चाहिए। यदि आपको एक अलग समस्या का सामना करना पड़ा है, जिसके समाधान के रूप में यह है, तो सही बात यह है कि अपने स्वयं के नए प्रश्न पूछें और स्व-उत्तर दें।
जेफ स्कालर

1
@JeffSchaller ने जो कहा वह सही है। और मैं के लिए प्रोत्साहित करेंगे, ShapCyber, वास्तव में करने के लिए करते हैं तो कृपया पूछने के लिए और समस्या और समाधान आप का सामना करना पड़ा के साथ एक प्रश्न स्वयं का जवाब (पर्याप्त विस्तार से उपयोगी होने के लिए); और फिर इस सवाल के लिए एक टिप्पणी जोड़ें आप से लिंक करने के लिए। यह कैसे इस साइट की स्थापना की रूपरेखा में भविष्य के पाठकों की मदद करने के लिए सबसे अच्छा है। :)
वाइल्डकार्ड

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