Thursday, 15 September 2011

linux - Permissions for a Bash Script -


मेरे पास एक स्क्रिप्ट है, जो /home/domain/cron/backup.sh में स्थित है

मैं मूलतः यह क्रॉन नौकरी है जो कि mysqldump का उपयोग करके mysql डेटाबेस का बैक अप लेना चाहता है। कमांड काम करता है जब मैं एसएसएच में लॉग इन हूं, लेकिन जब मैं क्रोन नौकरी से फाइल को चलाने के लिए चाहता हूं तो वह अनुमति से वापस आता है।

जिस फ़ोल्डर को मैं डंप करना चाहता हूँ उसे 'dbbackup' कहा जाता है । अगर मैं इस फ़ोल्डर पर ls -al चलाता हूं तो मुझे मिलता है:

  drwxrwxrwx 2 रूट रूट 4096 मार्च 16 14:07 ./ drwx - x - x 14 gf Gf 4096 मार्च 13 14:47 ../  

gf प्रणाली पर एक और उपयोगकर्ता है, और वह उपयोगकर्ता है जो क्रॉन स्क्रिप्ट के रूप में चलता है।

जब मैं क्रॉन नौकरी चलाता हूं, तो मुझे निम्नलिखित प्रतिक्रिया मिलती है:

डेटाबेस2015-16-03-2015.sql: अनुमति से वंचित

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

Mysqldump कमांड है:

mysqldump db_2015 & gt; /

मजबूत> संपादित करें भविष्य के संदर्भ के लिए और जो भी निराशा होती है, उसके लिए आने वाले किसी भी व्यक्ति को मुझे समाधान मिल गया था।

मूलतः मैं नियंत्रण कक्ष के माध्यम से क्रोन नौकरी सेट करने की कोशिश कर रहा था, उपयोगकर्ता gf के तहत (जो कि एसएसएच पहुंच नहीं है और इसलिए मैं कमांड प्रॉम्प्ट पर प्रवेश नहीं कर सकता)। लेकिन बेशक इस उपयोगकर्ता को इस बैकअप.श फ़ाइल को चलाने की अनुमति नहीं है। < / P>

इसलिए मैंने उस उपयोगकर्ता को अच्छी तरह से सोचना शुरू कर दिया कि मैंने बैकअप.श फ़ाइल को, ग्रेफाइट के साथ बनाया है, शायद मैं उसे क्रॉन नौकरी के रूप में चला सकता हूँ। इसलिए मैंने क्रॉन्टाबैब की तलाश शुरू की, और अभी भी sudo त्रुटियों (tty नहीं मिला) और बातें हो रही है। फिर मैं अपने mysqldump आदेश में backup.sh फ़ाइल में वापस गया और इसके बजाय उस कमांड को < कोड> सुडो , मैंने इसे सामान्य रूप में चलाया, और -यू ​​& lt; username & gt; और --password = & lt; password & gt रखा ; वहां में, और यह पूरी तरह से काम करता है मैं अनुमतियों के बारे में थोड़ी अधिक सीखा है और मेरे डेटाबेस अब दैनिक आधार पर बैक अप लेते हैं। हूज़ा!

समस्या यह है:

  drwx - x --x 14 जीएफ जीएफ 4096 मार्च 13 14:47 ../  

जैसा कि आप देख सकते हैं gf कर सकते हैं पढ़ा , और excecute लिखें, लेकिन अन्य उपयोगकर्ता केवल excecute कर सकते हैं।

नोट यह एक फ़ोल्डर है। इस प्रकार यदि इसकी पठनीय फाइल अंदर नहीं पहुंचा जा सकती है।

आपको यह सुनिश्चित करना है कि यह फ़ोल्डर और हर दूसरे मूल फ़ोल्डर है पठनीय । कुछ ऐसा:

  chmod 755 & lt; फ़ोल्डर का नाम & gt;  

तो आपको मिलेगा:

  drwxr-xr-x 14 gf gf 4096 13 मार्च 14:47 ../   

नोट यदि आप root या gf उपयोगकर्ता नहीं हैं आप उन चीजों में से कोई भी नहीं कर पाएंगे


No comments:

Post a Comment