क्या symlinks का उपयोग /etc/cron.d/ में किया जा सकता है?


25

मैं एक कॉन्फ़िगरेशन तंत्र को लागू करने की कोशिश कर रहा हूं जो एक निश्चित परियोजना में svn एक क्रॉन कॉन्फ़िगरेशन के माध्यम से तैनात करने की अनुमति देता है।

मैंने तुरंत कहा कि मुझे क्या करना चाहिए /etc/cron.d/ से मेरी परियोजना की क्रोन फ़ाइल (जो बदले में vcs द्वारा नियंत्रित होती है) के लिए सहानुभूति है, लेकिन यह काम नहीं कर रहा है।

मुझे कुछ पुराने फ़ोरम संदेश मिले, जिसमें कहा गया था कि सिमिलिंक का समर्थन नहीं किया गया है और अन्य कह रहे हैं कि वे हैं। यह किसका है?

क्या इसे प्राप्त करने के लिए कुछ और है या कोई और अच्छा तरीका है?

जवाबों:


27

इसके अनुसार man crond

चेतावनियां

सभी crontab फ़ाइलों को नियमित रूप से फ़ाइलों या नियमित फ़ाइलों के लिए सहानुभूति होना चाहिए, उन्हें किसी और के लिए निष्पादन योग्य या योग्य नहीं होना चाहिए लेकिन स्वामी। क्रोड कमांड लाइन पर -p विकल्प का उपयोग करके इस आवश्यकता का उल्लेख किया जा सकता है। यदि ino in tify सपोर्ट उपयोग में है, तो सिरिंज वाले क्रॉन्ब्स में परिवर्तन क्रोन डेमॉन द्वारा स्वचालित रूप से नहीं देखा जाता है। क्रोन डेमॉन को Crontabs को फिर से लोड करने के लिए एक SIGHUP संकेत प्राप्त करना चाहिए। यह inotify API की एक सीमा है।

जब मेल भेजने की स्थापना नहीं की जाती है, तो मेल के बजाय syslog आउटपुट का उपयोग किया जाएगा।

इसने मेरे साथ-साथ बाहर रहने वाले कोप को भी नाराज कर दिया, संक्षेप में, यदि आप स्विच का regular files or symlinks to a regular fileउपयोग करना चाहते हैं , तो आप सिम्बलिंक का उपयोग कर सकते हैं -p


1
आपको यह भी पता चलेगा कि फ़ाइल को उस उपयोगकर्ता के स्वामित्व में होना चाहिए जिसके लिए क्रोन जॉब्स चला रहा है; उदाहरण के लिए, यदि /etc/cron.d/bobsjobउपयोगकर्ता "बॉब" क्रोन के स्वामित्व वाली फ़ाइल के लिए एक सिम्लिंक इंगित करता है , तो वह एक syslog संदेश के साथ विफल हो जाएगा WRONG FILE OWNER (/etc/cron.d/bobsjob)
क्रेग रिंगर

@ क्रेगिंगर मेरे पास क्रोन फ़ाइल के मालिक "www-data" नाम का एक उपयोगकर्ता है, मुझे वर्तमान में syslog में गलत फ़ाइल त्रुटि त्रुटि मिल रही है। मैं "www-data" उपयोगकर्ता का उपयोग करके क्रोन को कैसे निष्पादित कर सकता हूं। मैं फ़ाइल को रूट करना नहीं चाहता।
CMCDragonkai

@CMCDragonkai sudo -u www-data crontab -eऔर इसे www-data उपयोगकर्ता के crontab में जोड़ें। यह तब उपयोगकर्ता के रूप में चलेगा www-data। स्पष्ट उपयोगकर्ता कॉलम को हटाने के लिए याद रखें, क्योंकि यह उपयोगकर्ता crontabs में मौजूद नहीं है।
क्रेग रिंगर

क्या वह फ़ाइल अंदर रखेगा etc/cron.? मैं इंप्रेशन के तहत था क्रॉस्टैब टूल कार्य को कहीं और रख देगा।
CMCDragonkai

@CMCDragonkai आप सही हैं, कॉलिंग crontab -eइस मामले में आप क्या चाहते हैं। मैं देख रहा हूँ, लेकिन एक उपयोगकर्ता crontab चलाने के लिए एक गैर रूट उपयोगकर्ता के रूप में नहीं मिला है।
ACK_stoverflow

14

इसके सुरक्षा निहितार्थ हैं। /Etc/cron.d/ में स्क्रिप्ट रूट विशेषाधिकारों के साथ रूट द्वारा चलाए जाते हैं। अपने सिस्टम से समझौता किए जाने के बाद से गैर-रूट उपयोगकर्ताओं के लिए स्क्रिप्ट और सहानुभूति रखने वाले लोगों के लिए यह एक बुरा विचार है।


4

मैं उबंटू के आपके संस्करण के लिए क्रोन मैनपेज की जाँच करूँगा (मुझे लगता है कि हम इस मंच पर उबंटू बात कर रहे हैं!)।

इस निर्देशिका में फ़ाइलों को रूट के स्वामित्व में होना चाहिए, उन्हें निष्पादन योग्य होने की आवश्यकता नहीं है (वे विन्यास फाइल हैं, जैसे / etc / crontab) और उन्हें उसी नामकरण सम्मेलन के अनुरूप होना चाहिए जो रन-पार्ट्स (8) द्वारा उपयोग किया जाता है: उन्हें पूरी तरह से ऊपरी और निचले मामले के अक्षरों, अंकों, अंडरस्कोर और हाइफ़न से मिलकर बनता है। इसका मतलब है कि उनमें कोई भी बिंदु नहीं हो सकता है।

जैसा कि फ्लोरियन बताते हैं, यदि यह फ़ाइल गैर-रूट उपयोगकर्ताओं द्वारा लिखने योग्य है, तो यह एक सुरक्षा छेद है क्योंकि नौकरियों को रूट द्वारा चलाया जाएगा (जो भी फ़ाइल में नौकरी के मालिक के रूप में नामित है)। इसलिए भी, ध्यान दें

इस निर्देशिका में / etc / crontab में उपयोग किए गए प्रारूप का अनुसरण करने वाली कोई भी फ़ाइल शामिल हो सकती है, अर्थात उपयोगकर्ता क्रोन स्पूल के विपरीत, इन फ़ाइलों को कार्य परिभाषा के अनुसार कार्य चलाने के लिए उपयोगकर्ता नाम प्रदान करना होगा।

यानी चलने के लिए कमांड से पहले यूज़रनेम पॉप करें।


1
इसका मतलब है कि उनमें कोई भी बिंदु नहीं हो सकता है। इस पर ध्यान दो। लिंक नाम में मेरा एक डॉट था। यह मेरे लिए मेरे न चलने वाली नौकरियों का अपराधी था। प्लस: फ़ाइल स्वयं एक
सीआरएलएफ के
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.