जवाबों:
मैं इसमें शामिल नहीं हूँ कि यह कितना बुरा विचार है; सीधे शब्दों में कहें, sudo
कॉन्टैब में चलने से आपके पासवर्ड को प्लेनटेक्स्ट में कहीं स्टोर करने की आवश्यकता होती है।
यह एक बुरा विचार है।
क्रोन के माध्यम से प्रशासनिक कार्यों को चलाने की पसंदीदा विधि निम्नलिखित है। चूँकि आपको वास्तव sudo
में crontab में लिखने की आवश्यकता नहीं है , यदि आप रूट के crontab को संशोधित कर रहे हैं।
निम्न आदेश चलाएँ:
sudo crontab -e
यह root
कोंट्राब को खोलता है । sudo
इस संदर्भ में अपना आदेश चलाना आवश्यक नहीं है, क्योंकि इसे root
वैसे भी लागू किया जाएगा ।
इसलिए, आप बस रूट के क्रॉस्टैब में निम्नलिखित जोड़ देंगे।
@hourly rm somefile
अब, यदि आप पूरी तरह से असुरक्षित होना चाहते हैं और अपने पासवर्ड के साथ जोखिम लेना चाहते हैं, तो निम्नलिखित आपके आदेश को आपके स्वयं के क्रॉस्टैब से चलाएगा, और जब संकेत दिया जाएगा तो अपने पासवर्ड को स्वचालित रूप से दर्ज करें sudo
।
फिर, यह अनुशंसित नहीं है ।
अपने स्वयं के क्रेस्टब में, अपनी कमांड को इस तरह लिखें:
@hourly echo "password" | sudo -S rm somefile
यहाँ स्पष्ट नुकसान यह है कि, क्या किसी को भी कभी आपके कॉन्टैब तक पहुंचना चाहिए, आपका पासवर्ड प्लेनटेक्स्ट में पठनीय होगा।
आपको ऐसा नहीं करना चाहिए।
root
बजाय यूजर क्रॉस्टैब का उपयोग क्यों करें /etc/crontab
?
sudoers
फ़ाइल में उपलब्ध सूक्ष्मताओं पर चमकता है , जैसे कि पासवर्ड की आवश्यकता के बिना सुडो समूह।
यदि आप क्रोन निर्देशिकाओं ( /etc/cron.*
) में से एक से स्क्रिप्ट डाल रहे हैं, तो आपको sudo का उपयोग करने की आवश्यकता नहीं है क्योंकि यह रूट के रूप में चल रहा है।
यदि आप क्रॉस्टैब का उपयोग कर रहे हैं, तो आप रूट के क्रॉस्टैब का उपयोग करना चाहेंगे। यह इसे जड़ के रूप में चलाएगा, और सूडो की भी आवश्यकता नहीं होगी।
sudo crontab -e
टर्मिनल में निम्नलिखित कमांड चलाएँ
sudo visudo
फ़ाइल के अंत में निम्न पंक्ति जोड़ी गई:
vidyadhar ALL= NOPASSWD: /bin/rm
उपरोक्त उदाहरण में विद्याधर उपयोगकर्ता नाम है और यह पासवर्ड के लिए नहीं पूछेगा कि क्या आप vidyadhar के माध्यम से rm कमांड चला रहे हैं।
sudo rm -rf 'slash'
( उस कमांड को न चलाएं ), उस उपयोगकर्ता से चलाएं, उसे पासवर्ड की आवश्यकता नहीं होगी .. मुझे नहीं पता, यह असुरक्षित लगता है, नहीं?
vidyadhar ALL= NOPASSWD: /bin/rm somefile
ज्यादा सुरक्षित होगा।
<username> ALL=(ALL) NOPASSWD: /home/<username>/bin/<script>
, जो ज्यादा सुरक्षित होगा।