यह एक विशिष्ट उपयोग का मामला है 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/...