मेरे पास एक स्क्रिप्ट है जो तीन कार्यों को निष्पादित करती है A && B && C
:।
फ़ंक्शन B
को सुपर-उपयोगकर्ता के रूप में चलाने की आवश्यकता है, जबकि A
और C
नहीं।
मेरे पास कई समाधान हैं लेकिन इनमें से कोई भी संतोषजनक नहीं है:
संपूर्ण लिपि को सूदो:
sudo 'A && B && C'
यह चलाने के लिए एक बुरे विचार की तरह लगता है
A
औरC
सुपर-उपयोगकर्ता के रूप में यदि इसकी आवश्यकता नहीं हैस्क्रिप्ट को इंटरैक्टिव बनाएं:
A && sudo B && C
मुझे अपना पासवर्ड टाइप-इन करना पड़ सकता है, लेकिन मैं चाहता हूं कि मेरी स्क्रिप्ट गैर-संवादात्मक हो, क्योंकि प्रत्येक फ़ंक्शन में कुछ समय लग सकता है, और मैं नहीं चाहता कि स्क्रिप्ट मेरा इंतजार करे। ठीक है, इसलिए भी यह पहली बार में एक स्क्रिप्ट है, इसलिए मुझे इसे चलाने की जरूरत नहीं है।
बेवकूफ समाधान:
sudo : && A && sudo -n B && C
पहले यह पहले से नहीं चलाने के लिए बेवकूफ लग रहा है
sudo
, और मुझे अपनी उंगली को पार करना होगा कि ए इससे अधिक नहीं लेने वाला है$sudo_timeout
।Hypothetical solution
sudo --store-cred 'A && sudo --use-cred-from-parent-sudo B && C'
यह शुरुआत में मेरे पासवर्ड के लिए संकेत देगा, और फिर जरूरत पड़ने पर ही उस क्रेडेंशियल्स का उपयोग करें।
इस सब पर आपकी क्या राय है? मुझे बहुत आश्चर्य होगा कि उस समस्या का कोई हल नहीं है, क्योंकि मुझे लगता है कि यह एक सामान्य समस्या है (क्या है make all && sudo make install
)
A
औरC
भागों को निष्पादित करते हैंsu -l some_non_priviliged_user
। कोई समयबाह्य समस्याएँ, और A और C. के लिए कोई भी priveliges मुझे नहीं लगता कि 4 संभव है,sudo
एक उपयोगकर्ता के लिए "वैश्विक स्थिति" प्रतीत होती है।