कैसे एक bash फ़ाइल में कमांड डालते हैं जो सामान्य रूप से शेल लॉगिन की आवश्यकता होती है?


2

सबसे पहले, मैं इस लिनक्स दुनिया में पूरी तरह से नया हूं। इसलिए, कृपया इस पर विचार करें जब आप पढ़ते हैं। मुझे बैश कोड की 10 से 20 लाइनें मिलीं जो मुझे समय-समय पर चलाने की आवश्यकता होती हैं। अब कल, मैं उन लाइनों को सिंगल बैश फाइल में डालने की कोशिश कर रहा हूं ताकि मैं उन्हें केवल एक ही कमांड में चला सकूं। लेकिन मैं एक बिंदु पर फंस गया क्योंकि कोड में कुछ ऑपरेशन शामिल हैं जो केवल शेल लॉगिन के साथ चल सकते हैं, उदाहरण के लिए 'cd / root'। अब, हर बार जब मैं उन्हें चलाता हूं तो मुझे कुछ बिंदु के बाद 'sudo -s' का उपयोग करके एक शेल में लॉगिन करने की आवश्यकता होती है। यहाँ मेरे कोड का एक हिस्सा है।

cd ~
cp -Rf $worthy_folders /root/
sudo -s
cd /root
sudo chown -R root:root $worthy_folders

जाहिर है मैं उन्हें बैश फाइल में नहीं लिख सकता क्योंकि वे हैं। यह सिर्फ मुझे पासवर्ड के लिए संकेत देता है और कई एन्टर प्रेस करने की आवश्यकता है। और 'sudo cd' भी काम नहीं करता है। तो, मेरा सवाल यह है कि क्या उन कमांडों को सिंगल बैश फाइल में लिखने का कोई तरीका है और बस उन्हें चलाएं?

जवाबों:


2

आप पूरी बात एक फाइल में डाल सकते हैं, कहते हैं myscript.sh , तो sudo के साथ पूरी बात चला:

$ sudo myscript.sh

इस तरह से सूडो किसी भी स्क्रिप्ट से पहले होता है। यदि वह स्वीकार्य नहीं है, तो आप एक बार में कुछ कमांड निष्पादित कर सकते हैं:

$ sudo bash -c "cd /root; chown -R root:root $worthy_folders"

यह बहुत अलग नहीं है, हालांकि, लेकिन कम से कम आपके पास सभी कमांड के बजाय उन्नत विशेषाधिकारों के साथ चलने वाले आदेशों का एक छोटा सबसेट हो सकता है।

और सिर्फ एक टिप के रूप में - हाँ, यह एक पासवर्ड के लिए स्क्रिप्ट के बीच में संकेत दिए जाने के लिए कष्टप्रद है, और अगर दौड़ की स्थिति की संभावना है, तो खतरनाक हो सकता है। आप -v ध्वज के साथ इसे बुलाकर आपको सुडोल मान्य कर सकते हैं। यदि आवश्यक हो तो यह आपको अपने पासवर्ड के लिए संकेत देगा और आपके sudoers फ़ाइल में निर्दिष्ट टाइमआउट को पुनरारंभ करने के लिए टाइमस्टैम्प को रीसेट करेगा।


धन्यवाद @ पाओल, sudo myscript.sh काम करता है !!! बहुत - बहुत धन्यवाद!
Prativasic
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.