2010-10-01 12 views
6

मैंने हाल ही में कुछ बैश स्क्रिप्टिंग सीखने का प्रयास करने का फैसला किया है और एक मजेदार अभ्यास के रूप में मैंने स्क्रिप्ट लिखने के लिए एक दैनिक फाइल खोलने का फैसला किया है जब भी स्क्रिप्ट है चलाते हैं।बैश: फ़ाइल को खोलने की कोशिश करते समय अनुमति अस्वीकार

यह ठीक काम किया जब तक मैं लॉग आउट और करने के लिए प्रणाली में वापस बाद में, जब मैं एक त्रुटि

/usr/local/bin/notes: line 45: /home/MY_USERNAME/notes/2010-10-01:Permission denied

Code

मैं गलत हो सकता है, लेकिन यह निश्चित रूप से नहीं लगता है प्राप्त ऐसी कुछ चीज़ जो अतिरिक्त अनुमतियों की आवश्यकता नहीं है, है ना?

संपादक nano

फ़ाइल की अनुमतियों के लिए सेट है कर रहे हैं -rw-rw-r--

स्क्रिप्ट की अनुमतियों हैं -rwxr-xr-x

+1

आपका $ EDITOR सेट क्या है? फ़ाइल पर अनुमतियाँ क्या हैं? साथ ही, प्रश्न में कोड को शामिल करना बेहतर है (एक कोड ब्लॉक में) ताकि प्रश्न संग्रह बेहतर हो जाए और पेस्टबिन दूर हो जाने के बाद अर्थहीन न हो। – zigdon

+0

** सबकुछ ** अनुमतियों की आवश्यकता है। कोई "अतिरिक्त" अनुमतियां नहीं हैं। फाइलों की अनुमतियों को देखने के लिए आपको 'ls -l' या' ls -ld' करना होगा। –

+0

आपको प्रश्न की पूर्णता के लिए कोड शामिल करने के लिए अद्यतन करना चाहिए। पास्टबिन आईडी अब मान्य नहीं है। – Chris

उत्तर

6

मेरा अनुमान है

$EDITOR $DAILY_FILENAME 

$EDITOR में रिक्त है कि, तो यह $DAILY_FILENAME जो नहीं निष्पादन निष्पादित करने के लिए कोशिश कर रहा है है। शायद जब आप परीक्षण कर रहे थे तो आपने मैन्युअल रूप से EDITOR सेट किया था, लेकिन इसे आपके .bashrc (या जो भी) फ़ाइल में नहीं जोड़ा था।

इसे साबित करने के लिए -x विकल्प का उपयोग करें।

+0

हाँ, मुझे लगता है कि मैंने स्थायी रूप से संपादक चर सेट नहीं किया है, मैंने केवल उस सत्र के लिए सेट किया था। धन्यवाद – Michi

7

जांच

ls -l /path/to/your/file 

के साथ फ़ाइल पर अनुमति आप

की तरह कुछ देखना चाहिए
-rw-r--r-- 

आर मतलब पठनीय, डब्ल्यू लिखने योग्य और एक्स निष्पादन योग्य है।

पहला सेट आपके उपयोगकर्ता के लिए है, तीन का दूसरा सेट आपके समूह के लिए है, और तीसरा सेट किसी के लिए है।

इसलिए मेरे उदाहरण में, मैंने जो फ़ाइल दिखायी है वह मेरे लिए पढ़/लिखना है, और केवल मेरे समूह के लिए और किसी अन्य उपयोगकर्ता के लिए पढ़ा गया है।

अनुमतियों को बदलने के लिए chmod कमांड का उपयोग करें।

chmod 744 file 

फ़ाइल आपके लिए पढ़ने/लिखने/निष्पादित करेगा, और केवल उपयोगकर्ता/दुनिया के लिए पढ़ेगा।

0

अगर मुझे लगता है, तो मैं सुझाव दूंगा कि $EDITOR पर्यावरण चर किसी कारण से अपरिभाषित है। ऐसा लगता है कि आपकी स्क्रिप्ट नोट्स फ़ाइल निष्पादित करने का प्रयास कर रही है - क्योंकि यह निष्पादन योग्य नहीं है, आपको अनुपयोगी त्रुटि संदेश मिलता है।

संबंधित मुद्दे