मेरे पास एक स्क्रिप्ट है जो तीन कार्यों को निष्पादित करती है 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एक उपयोगकर्ता के लिए "वैश्विक स्थिति" प्रतीत होती है।