.Sh स्क्रिप्ट चलाते समय अनुमति से वंचित


70
./geany_run_script.sh: 5: ./geany_run_script.sh: ./Area_circumference: Permission denied

program exited with code: 126। यह समस्या हमेशा तब होती है जब मैं अपने कोड को निष्पादित करने का प्रयास करता हूं। इसका क्या समाधान हो सकता है?


1
Permission deniedत्रुटि तब होती है जब आपके पास उस फ़ाइल तक पहुंचने का पर्याप्त विशेषाधिकार नहीं होता है।
अविनाश राज

मैं अनुमतियाँ कैसे बदल सकता हूँ
wkhwilo

मैं ऐसा कहां करता हूं कि कृपया मुझे एक शॉट उदाहरण दें
wkhwilo

जब मैं ऐसा करता हूं तो यह मुझे बताता है कि यह chmod: 'geany_run_script.sh' तक नहीं पहुंच सकता: ऐसी कोई फ़ाइल या निर्देशिका नहीं। क्या मुझे इसे टर्मिनल से चलाना चाहिए या क्या?
वाक्विलो २२'१४

जवाबों:


117

यहाँ एक लिंक है जो फ़ाइल की अनुमति (और स्वामित्व बदलने) के बारे में बताता है

यदि आप इन्हें (अब के लिए) छोड़ना चाहते हैं, तो आप अपने उपयोगकर्ता-होम निर्देशिका में एक निर्देशिका / फ़ोल्डर बना सकते हैं और Cवहां अपने कार्यक्रमों (या अन्य) पर काम कर सकते हैं।


आप टर्मिनल (प्रेस Ctrl+ Alt+ T) और cdलक्ष्य निर्देशिका के लिए खोल सकते हैं :

cd /path/to/target

फ़ाइल को "the_file_name" देने के लिए अनुमति दें (यदि फ़ाइल-सिस्टम आपको RW अधिकारों की अनुमति देता है):

chmod +x the_file_name

मैं अनुमतियों को किसी भी उदाहरण में कैसे बदल सकता हूं
wkhwilo

समस्या यह है कि मैं यह कैसे कर सकता हूं? मैं एक नया उबंटू उपयोगकर्ता हूं जिसे मैंने हाल ही में विंडोज़ से स्विच किया है।
वेखविलो

.. क्या आपके काम की निर्देशिका यानी। आपके स्रोत कोड फ़ाइल का स्थान क्या है? ..क्या आपको विंडोज़ सीएलआई के साथ कुछ अनुभव है?
सटीक

@ wkhwilo-012, देखें कि क्या मदद करता है और कृपया अधिक पूछने में संकोच न करें ..
सटीक

@ wkhwilo-012, कृपया अपने निष्पादन योग्य फ़ाइल Area_circumferenceको कॉपी करें और अपने प्रश्न के शरीर को अपडेट करने के लिए (फ़ाइल पथ चिपकाया जाएगा) पेस्ट करें ...
सटीक

20

आपको केवल निष्पादित अनुमति देने की आवश्यकता है। इसका पीछा करो:

    chmod +x filename.sh
    ./filename.sh

जब हम नई स्क्रिप्ट फ़ाइल बनाते हैं तो डिफ़ॉल्ट रूप से यह पढ़ने और लिखने की अनुमति देता है। लेकिन अगर हम उन्हें निष्पादित करना चाहते हैं, तो हमें ऊपर दिखाए गए द्वारा निष्पादन की अनुमति देनी चाहिए।


2

CTRL+ ALT+ Tया ग्राफिकल एनवायरमेंट (जैसे Terminalया xTerm) पर एप्कोसाइट शॉर्टकट के साथ अपने टर्मिनल एप्लिकेशन को खोलें ।
स्क्रीन पर दिखाई देने वाली वर्दी विंडो में आपको एक निमिष चरित्र दिखाई देगा, यह है terminal cursor: बस खिड़की पर क्लिक करें और पाठ दर्ज करने के लिए लिखें (आमतौर पर आदेश) और ENTERइनपुट की पुष्टि करने के लिए दबाएं ।
कर्सर से पहले फ़ाइल सिस्टम पर आपकी वर्तमान स्थिति root directory("/") और आपके घर (जहां आपकी व्यक्तिगत फाइलें हैं) को "~" कहा जाता है।
निर्देशिका / फ़ोल्डर का उपयोग cd EXISTENTFOLDERबदलने के लिए (फ़ोल्डर नाम के साथ EXISTENTFOLDER बदलें); यदि आप खोए हुए महसूस करते हैं, तो cdपलक झपकते ही अपने घर की निर्देशिका में वापस जाएँ!
अभीआइए आपकी समस्या का समाधान करते हैं :

  1. cdअपने स्रोत कोड के साथ निर्देशिका खोजने के लिए कमांड का उपयोग करें । TABआपकी मदद करने के लिए उपयोग करें । यदि आप निष्पादित करते हैं ls -lh, तो आपको निष्पादित करने के लिए संभावित पथों की सूची और फ़ाइलों का पालन करना होगा।

  2. जब आपको अवरुद्ध फ़ाइल निष्पादित होती है, तो chmod +x FILENAME(अपने स्रोत कोड फ़ाइल के नाम के साथ FILENAME को बदलें)।

  3. यदि आपके पास chmod +x *वर्तमान निर्देशिका में सभी फ़ाइलों को अनलॉक करने के लिए कई अवरुद्ध फ़ाइलें निष्पादित हैं । कभी भी chmod + x खतरनाक या असुरक्षित फाइल नहीं

  4. ./FILENAME YOUREVENTUALARGUMENTSअपनी निष्पादन योग्य फ़ाइल निष्पादित करने के लिए निष्पादित करें।

  5. याद रखें कि यदि आपका संकलित कार्यक्रम आपके घर निर्देशिका के बाहर पढ़ने / लिखने की कोशिश करता है, तो आपको इसका rootउपयोग करके इसे निष्पादित करना होगा sudo ./FILENAME YOUREVENTUALARGUMENTS

यदि आप कमांड एग्जीक्यूट के लिए मैनुअल रखना चाहते हैं man COMMAND(COMMAND को सटीक कमांड नाम से बदलें, तो लिनक्स केस सेंसिटिव है)।

कुछ गोले Open terminal hereआपके जीवन को सरल बनाने के लिए एक कमांड है, भविष्य में इसके लिए खोज करें और याद रखें कि कमांड शेल आपका सबसे अच्छा दोस्त हो सकता है, अगर आप इसे अच्छी तरह से उपयोग करते हैं। :-D

यह सब है। यदि आपको यहाँ नीचे अधिक सहायता टिप्पणी की आवश्यकता है।
अगर मैं आपको बाईं ओर यूपी तीर दबाने में मदद कर रहा हूं; यदि आप इस उत्तर को सर्वश्रेष्ठ उत्तर के रूप में हल करते हैं।

लिनक्स और Ubuntu पर एक अच्छा अनुभव है।


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