" Sudo -S " के लिए इतिहास सेट करें
$ export HISTIGNORE='*sudo -S*'
फिर अपना पासवर्ड सुरक्षित रूप से पास करने के लिए:
$ echo "your_password" | sudo -S -k <command>
"इतिहास" का अर्थ इतिहास में इस आदेश को नहीं सहेजना है। वह इतिहास है मेमोरी या "~ / .bash_history" फ़ाइल में।
उदाहरण के लिए, नीचे आपके पासवर्ड के इतिहास को बनाए रखने के बिना, आपके पासवर्ड को sudo कमांड पर सुरक्षित रूप से पाइप करेगा।
"-S", पासवर्ड के लिए स्टड का उपयोग करने का मतलब है,
"-क" का अर्थ है कि हमेशा से पूछने के लिए सूडो को मजबूर करने के लिए कैश्ड क्रेडेंशियल्स की अनदेखी करना। यह सुसंगत व्यवहार के लिए है।
$ export HISTIGNORE='*sudo -S*'
$ echo "<your_password>" | sudo -S -k whoami
$ echo "<your_password>" | sudo -S -k cat /etc/shadow
$ echo "<your_password>" | sudo -S -k bash /tmp/myscript.sh
उपरोक्त विधि के लिए नकारात्मक पक्ष यह है कि यदि आप इतिहास में आपके द्वारा चलाए गए आदेशों को बाद में देखना चाहते हैं तो वे वहां नहीं होंगे। सुडो प्रमाणीकरण क्रेडेंशियल कैश को अपडेट करने के लिए एक और तरीका है (डिफ़ॉल्ट 5 मिनट के समय के साथ सक्षम है), फिर अलग से सुडो को चलाएं। लेकिन इसका नकारात्मक पक्ष यह है कि आपको 5 मिनट कैश के बारे में पता होना चाहिए।
उदाहरण के लिए:
$ export HISTIGNORE='*sudo -S*'
$ echo "<your_password>" | sudo -S -v
$ sudo whoami
$ echo "<your_password>" | sudo -S -v
$ sudo cat /etc/shadow
$ echo "<your_password>" | sudo -S -v
$ sudo /tmp/myscript.sh
नोट: मैं यह सुनिश्चित करने के लिए प्रत्येक कमांड से पहले एक sudo चलाता हूं कि sudo कैश अपडेट है, क्योंकि डिफ़ॉल्ट 5 मिंट है। हाँ, जो कोमी को 5 मिनट का समय नहीं लेना चाहिए, लेकिन मुझे लगता है कि यह निरंतरता के लिए प्रत्येक कमांड से पहले चलाया जा सकता है। आप "एक्सपोर्ट HISTIGNORE = ' sudo -S भी लगा सकते हैं'"आपकी ~ / .bashrc फ़ाइल में, फिर इसे लोड करें"। ~ / .bashrc "या लॉगऑफ करें फिर लॉगिन करें। हालाँकि, मैं इसे स्क्रिप्टिंग उद्देश्यों के लिए उपयोग करने के बारे में सोच रहा हूं, इसलिए मैं इसे सर्वश्रेष्ठ सुरक्षा प्रथाओं के लिए अपनी सभी लिपियों में सबसे ऊपर रखूंगा।" इको "" सेट करना। sudo -S -v "के बजाय एक चर भी एक अच्छा विचार हो सकता है, तो बस प्रत्येक कमांड से पहले चर को चलाएं जो रूट विशेषाधिकारों की आवश्यकता है, जनेर की टिप्पणी देखें।" जॉन टी "की टिप्पणी में" -के "पैरामीटर भी शामिल होना चाहिए। , जैसे कि अगर आप "-k" के बिना "sudo -S" चलाते हैं और sudo प्रमाणीकरण कैश में पहले से ही आपकी साख है (और अभी भी वैध है, डिफ़ॉल्ट sudo प्रमाणीकरण कैश 5 मिनट है) तो bash आपके पासवर्ड को कमांड के बजाय चलाएगा, जो खराब।
halt
रूट के रूप में चलाने की आवश्यकता है।