यह एक विशिष्ट उपयोग का मामला है 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
sudo su, देखने के unix.stackexchange.com/questions/218169/...