2012-08-14 7 views
41

मैं पैरामीटर के रूप में अपने पासवर्ड के साथ सुडो चलाने के लिए चाहता हूं ताकि मैं इसे स्क्रिप्ट के लिए उपयोग कर सकूं। मैंनेपैरामीटर के रूप में पासवर्ड के साथ सुडो का उपयोग करें

sudo -S mypassword execute_command 

लेकिन बिना किसी सफलता के प्रयास किया। कोई सुझाव?

+0

आपको सिर्फ यह जांचना चाहिए कि आपकी स्क्रिप्ट "रूट" द्वारा चलती है या नहीं। पासवर्ड को प्रतिबिंबित करना बुरा है, यह इतिहास में मिलेगा ... – kbdjockey

+0

'सूडो' को ठीक से कॉन्फ़िगर करना बेहतर है कि यह कुछ गंदे हैक्स से बचने के लिए कुछ प्रोग्राम/उपयोगकर्ता/समूह के लिए पासवर्ड नहीं पूछेगा। – rush

उत्तर

16
echo -e "YOURPASSWORD\n" | sudo -S yourcommand 
+0

यह मेरे काम के लिए तर्क होने पर काम नहीं करता है। उदाहरण के लिए। 'echo -e "YOURPASSWORD \ n" | सुडो-एस "रन-एक्स" '। यह कहता है 'सुडो: रन-एक्स: कमांड नहीं मिला'। किसी भी विचार को इस बारे में कैसे जाना है? – Bee

+0

@ भाथीया बस "उद्धरण" का उपयोग नहीं करते हैं, उदाहरण के लिए: echo -e "YOURPASSWORD \ n" | sudo -S ls -l/root – matteomattei

+0

ग्रेट, धन्यवाद ... – Bee

99

-एस स्विच सुडो एसटीडीआईएन से पासवर्ड पढ़ता है। इसका मतलब है आप

echo mypassword | sudo -S command 

कर sudo का पासवर्ड पारित करने के लिए

हालांकि कर सकते हैं, दूसरों के द्वारा सुझाव है कि अगर उपयोगकर्ता जड़ है इस तरह की जाँच के रूप में एक कमांड के हिस्से के रूप पासवर्ड गुजर शामिल नहीं है शायद हैं सुरक्षा कारणों से काफी बेहतर विचारों

+0

जो काम करता है, बहुत सारे धन्यवाद !! – normalUser

+0

मेरा दिन बचाया, बहुत धन्यवाद !!! – AdrianES

+0

इसे एक समर्पित फ़ोल्डर में डालने के बारे में कैसे इसे और फ़ोल्डर निष्पादन-केवल अनुमतियां प्रदान करते हैं: 'sudo chmod -R 0100 myScriptFolder'? क्या यह सुरक्षा समस्याओं को हल नहीं करेगा (बशर्ते कोई भी आपके कंप्यूटर को रूट के रूप में उपयोग नहीं करता है लेकिन आप)? – Shule

34

आप अपनी स्क्रिप्ट के लिए s बिट सेट कर सकते हैं इतना है कि यह sudo की जरूरत नहीं है और रूट के रूप में चलाता है (और आप स्क्रिप्ट में अपने रूट पासवर्ड लिखने की जरूरत नहीं है):

sudo chmod +s myscript 
+0

+1। अन्य तरीकों की तुलना में यह बेहतर (और अधिक सुरक्षित) है। – Burkhard

+1

चिपचिपा बिट खराब अभ्यास नहीं है? – kbdjockey

+0

@kbdjockey - 's' सेट्यूड बिट है। 'टी 'चिपचिपा बिट है। –

2

एक विकल्प एसएडो को ध्वज का उपयोग करना है। यह पासवर्ड मांगने के लिए एक कार्यक्रम चलाता है। पूछने के बजाय, आपके पास एक स्क्रिप्ट हो सकती है जो सिर्फ पासवर्ड को थूकती है ताकि प्रोग्राम जारी रख सके।

0
# Make sure only root can run our script 
if [ "$(id -u)" != "0" ]; then 
    echo "This script must be run as root" 1>&2 
    exit 1 
fi 
+0

यह ओपी के सवाल का जवाब नहीं देता है। – codeforester

संबंधित मुद्दे