ऐसा प्रतीत होता है कि किसी और ने यहां स्पष्ट चिंता को संबोधित नहीं किया है। लाना sudo
अपनी स्क्रिप्ट के भीतर है कि आप तो वितरित बुरा उपयोगकर्ता की आदतों को बढ़ावा देता है । (मैं मान रहा हूं कि आप इसे वितरित कर रहे हैं क्योंकि आप "उपयोगकर्ता के दृष्टिकोण से" उल्लेख करते हैं।)
सच्चाई यह है कि एप्लिकेशन और स्क्रिप्ट का उपयोग करने में एक दिशानिर्देश है जो बैंकिंग में सुरक्षा सिद्धांत के समान है: कभी भी अपनी व्यक्तिगत जानकारी किसी ऐसे व्यक्ति को न दें जो आपको कॉल करता है और कहता है कि वे "आपके बैंक से कॉल कर रहे हैं" , और जो मौजूद है इसी तरह के कारणों के लिए।
अनुप्रयोगों के लिए नियम है:
संकेत मिलने पर कभी भी अपना पासवर्ड न लिखें, जब तक कि आप निश्चित न हों कि इसके साथ क्या किया जा रहा है। यह sudo
पहुंच वाले किसी व्यक्ति पर भी लागू होता है ।
यदि आप अपना पासवर्ड टाइप कर रहे हैं क्योंकि आप sudo
कमांड लाइन पर चले गए हैं, तो बढ़िया है। यदि आप इसे टाइप कर रहे हैं क्योंकि आप SSH कमांड चलाते हैं, तो ठीक है। यदि आप इसे अपने कंप्यूटर में लॉग इन कर रहे हैं, तो निश्चित रूप से बढ़िया है।
यदि आप केवल एक विदेशी स्क्रिप्ट चलाते हैं या निष्पादन योग्य और इसके लिए संकेत दिए जाने पर अपना पासवर्ड दर्ज करते हैं, तो आपको पता नहीं है कि स्क्रिप्ट इसके साथ क्या कर रही है। इसे आप सभी के लिए प्लेनटेक्स्ट में एक टेम्प फाइल में स्टोर कर सकते हैं, और खुद के बाद सफाई करने में भी विफल हो सकते हैं।
जाहिर है कि कमांड के एक अज्ञात सेट को चलाने के बारे में अलग और अतिरिक्त चिंताएं हैं root
, लेकिन मैं यहां जो बात कर रहा हूं वह पासवर्ड पर ही सुरक्षा बनाए रखता है । यहां तक कि एप्लिकेशन / स्क्रिप्ट को दुर्भावनापूर्ण मानते हुए भी, आप अभी भी चाहते हैं कि आपका पासवर्ड सुरक्षित रूप से अन्य अनुप्रयोगों को रोकने और दुर्भावनापूर्ण तरीके से उपयोग करने से रोकने के लिए संभाला जाए ।
तो, इसके लिए मेरी अपनी व्यक्तिगत प्रतिक्रिया है, अगर इसे मूल विशेषाधिकारों की जरूरत है, तो अपनी स्क्रिप्ट में रखना सबसे अच्छी बात है:
#!/bin/bash
[ "$UID" -eq 0 ] || { echo "This script must be run as root."; exit 1;}
# do privileged stuff, etc.
exec
- स्वयं कॉल करें, लेकिन साथ ही साथ प्रक्रिया को प्रतिस्थापित भी कर रहे हैं, इसलिए हम स्क्रिप्ट के कई उदाहरणों को नहीं