echo $password | sudo -S apt-get install -y foo bar
इसमें कुछ समय खतरनाक है। यदि उपयोगकर्ता पहले से ही सुडो को प्रमाणित कर चुका है, तो सूडो फिर से पासवर्ड का अनुरोध नहीं करेगा और इसे एपीटी-प्राप्त करने के लिए अग्रेषित किया जाएगा, जिससे अजीब परिणाम हो सकते हैं (उदाहरण के लिए, यदि पोस्टस्क्रिप्ट स्क्रिप्ट एक प्रश्न पूछती है)। मैं
sudo -k # remove previous sudo timestamp
echo $password | sudo -v -S # create a new one for 15 minutes
sudo apt-get ... # execute the command
का उपयोग करने का सुझाव देगा।
संपादित करें: echo
निष्पादित होने पर पासवर्ड बहुत कम समय के लिए दृश्यमान होने के बारे में सही है। कृपया अपने प्रश्न के उत्तर के बजाय मेरा उत्तर एक विस्तारित टिप्पणी के रूप में देखें।
एक बहुत छोटी खिड़की हो सकती है जबकि echo कमांड के लिए/proc प्रविष्टि मौजूद है, लेकिन 'छोटा' ऑपरेटिव शब्द है, ऐसा लगता है (जैसे मिलीसेकंड, या कम)। –
क्या करें 'strace -o bash.strace -f bash -c' गूंज पासवर्ड | बिल्ली 'और फ़ाइल' bash.strace' की जांच करें। आपको 'execve ("/ bin/cat", ["cat"], [/ * 53 vars * /]) = 0' के साथ लाइन दिखाई देगी, लेकिन आप वहां गूंज नहीं देखेंगे (पहली पंक्ति को छोड़कर यह बाश को पारित किया जाता है): यह एक बाश निर्मित है। तो, बैश में स्क्रिप्ट लॉन्च करना इसे सुरक्षित रखने के लिए पर्याप्त है। – ZyX
@ZyX - जोखिम की व्याख्या के लिए धन्यवाद। मैंने पहले इस तरह के समाधान पर विचार नहीं किया होता, फिर भी मेरी स्थिति मुझे इसका इस्तेमाल करने के लिए मजबूर करती है। खुशी है कि यह डर के रूप में असुरक्षित नहीं है। – MountainX