सूडो कमांड का उपयोग करके क्रोन जॉब कैसे चलाएं


118

क्या क्रोन जॉब चलाना संभव है जिसे सुडो कमांड की जरूरत है ?

पसंद:

 sudo rm somefile

आपका स्वागत है Sayem सियाम, इस सवाल के जवाब पर एक नजर है askubuntu.com/questions/2368/how-do-i-setup-cron-job । जैसा कि मुझे लगता है कि आपका प्रश्न एयू पर पहले भी पूछा जा चुका है
स्टीफनहिमल

1
मैं sudo को निष्पादित करने की कोशिश कर रहा हूं, जिसे पासवर्ड की आवश्यकता है लेकिन मैं क्रॉन फ़ाइल से पासवर्ड कैसे दे सकता हूं
Sayem siam

3
@ sayemsiam आपको sudo लगाने की ज़रूरत नहीं है, बस रूट crontab को संपादित करें।
Braiam

जवाबों:


239

मैं इसमें शामिल नहीं हूँ कि यह कितना बुरा विचार है; सीधे शब्दों में कहें, sudoकॉन्टैब में चलने से आपके पासवर्ड को प्लेनटेक्स्ट में कहीं स्टोर करने की आवश्यकता होती है।

यह एक बुरा विचार है।


क्रोन के माध्यम से प्रशासनिक कार्यों को चलाने की पसंदीदा विधि निम्नलिखित है। चूँकि आपको वास्तव sudoमें crontab में लिखने की आवश्यकता नहीं है , यदि आप रूट के crontab को संशोधित कर रहे हैं।

रूट के क्रॉस्टैब का उपयोग करें

निम्न आदेश चलाएँ:

sudo crontab -e

यह rootकोंट्राब को खोलता है । sudoइस संदर्भ में अपना आदेश चलाना आवश्यक नहीं है, क्योंकि इसे rootवैसे भी लागू किया जाएगा ।

इसलिए, आप बस रूट के क्रॉस्टैब में निम्नलिखित जोड़ देंगे।

@hourly rm somefile

अब, यदि आप पूरी तरह से असुरक्षित होना चाहते हैं और अपने पासवर्ड के साथ जोखिम लेना चाहते हैं, तो निम्नलिखित आपके आदेश को आपके स्वयं के क्रॉस्टैब से चलाएगा, और जब संकेत दिया जाएगा तो अपने पासवर्ड को स्वचालित रूप से दर्ज करें sudo

फिर, यह अनुशंसित नहीं है


अपने स्वयं के क्रेस्टब में, अपनी कमांड को इस तरह लिखें:

@hourly echo "password" | sudo -S rm somefile

यहाँ स्पष्ट नुकसान यह है कि, क्या किसी को भी कभी आपके कॉन्टैब तक पहुंचना चाहिए, आपका पासवर्ड प्लेनटेक्स्ट में पठनीय होगा।

आपको ऐसा नहीं करना चाहिए।


1
खुशी है कि यह काम करता है! बस किसी भी सुरक्षा छेद से सावधान रहें जिसे आप पीछे छोड़ते हैं .. वे बाद में आपको परेशान करने के लिए वापस आ सकते हैं।
सरचार्लो

1
@SirCharlo सिस्टमवाइड क्रॉस्टैब के rootबजाय यूजर क्रॉस्टैब का उपयोग क्यों करें /etc/crontab?
एलिया कगन

1
@ एलाइजा क्यों नहीं?
सरचार्लो

2
यह उत्तर चिह्न को याद करता है क्योंकि यह आपकी sudoersफ़ाइल में उपलब्ध सूक्ष्मताओं पर चमकता है , जैसे कि पासवर्ड की आवश्यकता के बिना सुडो समूह।
ब्रेंट

बहुत उपयोगी बिंदु, महान मदद के लिए धन्यवाद।
नासिर मंसूरी

33

यदि आप क्रोन निर्देशिकाओं ( /etc/cron.*) में से एक से स्क्रिप्ट डाल रहे हैं, तो आपको sudo का उपयोग करने की आवश्यकता नहीं है क्योंकि यह रूट के रूप में चल रहा है।

यदि आप क्रॉस्टैब का उपयोग कर रहे हैं, तो आप रूट के क्रॉस्टैब का उपयोग करना चाहेंगे। यह इसे जड़ के रूप में चलाएगा, और सूडो की भी आवश्यकता नहीं होगी।

sudo crontab -e

1
मैं /etc/cron.hourly/something में भी कमांड रखूंगा। यही इन निर्देशिकाओं के लिए हैं।
जॉन एस ग्रुबर

3
नहीं, आप इसे /etc/cron.SOMETHING/SCRIPT में डाल सकते हैं, लेकिन मैं दोनों नहीं करूंगा। दोनों मोटे तौर पर एक ही फंक्शन देते थे, हालांकि कोंट्राब का उपयोग करने से आपके पास कितनी बार / जब चीजें चलती हैं तो थोड़ी अधिक शक्ति होगी।
tgm4883

1
मुझे स्पष्ट करना चाहिए था कि मेरा मतलब एक विकल्प के रूप में था। धन्यवाद।
जॉन एस ग्रुबर

3

टर्मिनल में निम्नलिखित कमांड चलाएँ

sudo visudo

फ़ाइल के अंत में निम्न पंक्ति जोड़ी गई:

vidyadhar  ALL= NOPASSWD: /bin/rm

उपरोक्त उदाहरण में विद्याधर उपयोगकर्ता नाम है और यह पासवर्ड के लिए नहीं पूछेगा कि क्या आप vidyadhar के माध्यम से rm कमांड चला रहे हैं।


17
हम्म .. फिर किसी भी दुर्भावनापूर्ण आदेश, जैसे sudo rm -rf 'slash'( उस कमांड को न चलाएं ), उस उपयोगकर्ता से चलाएं, उसे पासवर्ड की आवश्यकता नहीं होगी .. मुझे नहीं पता, यह असुरक्षित लगता है, नहीं?
सरचर्लो

हां मैं इसे जानता हूं। आपका दृष्टिकोण अच्छा है। लेकिन मैं कुछ सेवाओं को रोकने / शुरू करने के लिए अन्य उपयोगकर्ता को अधिकार देने के लिए उपरोक्त दृष्टिकोण का उपयोग कर रहा हूं।
विद्याधर

24
यह एक बहुत बुरा विचार है। कृपया ऐसा न करें।
भानुका

2
शायद vidyadhar ALL= NOPASSWD: /bin/rm somefileज्यादा सुरक्षित होगा।
वर्नफ्रीड डम्सशिट

यह एक भयानक विचार है। आपने rm को कंबल सूडो की अनुमति दी । इसके बजाय, एक स्क्रिप्ट को अपने स्क्रिप्ट के लिए सूद की अनुमति दें, जिसमें उस स्क्रिप्ट में आरएम या अन्य शामिल हैं, इसे निष्पादन योग्य बनाएं, फिर उस स्क्रिप्ट को सूडो अनुमति दें। <username> ALL=(ALL) NOPASSWD: /home/<username>/bin/<script>, जो ज्यादा सुरक्षित होगा।
RJ
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.