मैंने इस तरह से एक शेल स्क्रिप्ट लिखी
#!/bin/bash
sudo mkdir /var/www/html/test
sudo cp ./index.html /var/www/html/test/index.html
echo "Hi" > /var/www/html/test/index.html
अगर मैं इसके साथ भागता हूं sudo
यह अच्छा काम करता है।
$ sudo ./script.sh
लेकिन मैं डॉन 'टी के साथ चलाना चाहते हैं sudo
. क्योंकि echo
doesn "टी की जरूरत है विशेषाधिकारी। दूसरे हाथ में अगर मैं यह बिना चलाने के लिए sudo
इस तरह:
$ ./script.sh
पहले आदेश के लिए (mkdir
) यह मुझसे रूट पासवर्ड और दूसरी कमांड के लिए नहीं पूछता है "t रन और मुझे एक अनुमति अस्वीकृत त्रुटि दे।
मैं इस स्थिति को कैसे संभाल सकता हूं?
उत्तर:
जवाब के लिए 0 № 1आपके सेटअप के आधार पर, उदा। ubuntu में अगर मैं 2 बार sudo चलाता हूं, तो दूसरी बार I "t" को पासवर्ड देना होगा। इसलिए यह संभव है कि दूसरा sudo DID चलाए, बिना पासवर्ड दोबारा पूछे।
आप स्पष्ट कर सकते हैं, यह प्रयास करें:
sudo echo a
sudo echo b
यह सबसे अधिक संभावना है, जैसा कि किप के ने टिप्पणी की थी, त्रुटि की उत्पत्ति "हाय" से होती है ... क्योंकि सामान्य उपयोगकर्ता को /var/www/html/test/index.html लिखने की अनुमति नहीं है।
किन्दा ओवरकिल, लेकिन आप इस तरह लगातार प्रतिक्रिया दे सकते हैं:
sudo bash -c "echo mkdir; mkdir /var/www/html/test"
sudo bash -c "echo cp; cp ./index.html /var/www/html/test/index.html"
जवाब के लिए 0 № 2
प्रयत्न chown
निर्देशिका के लिए test
:
#!/bin/bash
sudo bash -c "mkdir /var/www/html/test && chown -R USER /var/www/html/test"
cp ./index.html /var/www/html/test/index.html
echo "Hi" > /var/www/html/test/index.html
या ... chmod o+w /var/www/html/test