2011-11-11 8 views
12

मैं एक अजीब समस्या नहीं, मैं नहीं कर सकते के रूप में भी पार्टी स्क्रिप्ट को निष्पादित राशि बुनियादी रूप में:बैश स्क्रिप्ट को रूट के रूप में भी निष्पादित नहीं कर सकता है?

#!/bin/bash 
echo "me" 

मैं इसे एक test.sh के रूप में बचत कर रहा हूँ और उसके बाद 755 test.sh chmod और एक बार ./test.sh चला सकता हूँ प्राप्त करना:

bash: ./test.sh: Permission denied 

कोई विचार?

चियर्स

+4

क्या आप इसे फाइल सिस्टम में लिख रहे हैं जो नोएक्सैक घुड़सवार है? –

उत्तर

19

कि यदि आप "noexec" विकल्प के साथ फाइल सिस्टम घुड़सवार है हो सकता है। आपको इसे हटा देना चाहिए।

+2

इसके अलावा, अगर आपके फाइल सिस्टम को 'नोएक्सैक' विकल्प के साथ घुमाया गया है, तो जल्दी से जानना, 'माउंट' और' नोएक्सैक 'विकल्प को निकालने के लिए, इसे निम्न फ़ाइल में फाइल सिस्टम के खिलाफ विकल्पों की सूची से हटा दें: '/ etc/fstab'। या वैकल्पिक रूप से [add] (https://bbs.archlinux.org/viewtopic.php?pid=989973#p989973) विकल्पों के अंत में 'exec' विकल्प। –

+1

'उपयोगकर्ता' विकल्प इस समस्या का भी कारण बन सकता है। इसे हटाने से मुझे बाइनरी को प्रश्न में निष्पादित करने की अनुमति मिली। – rinogo

+0

मैंने कोशिश की लेकिन यह कह रहा है कि अनुमति –

1

फ़ाइल की वास्तविक अधिकार और स्वामित्व को देखने के लिए

-la

ls की कोशिश करो। यह देखने के लिए कि chmod कमांड वास्तव में काम करता है या नहीं। आप फाइल के मोड के साथ स्वामित्व को बदलना चाह सकते हैं: http://www.tuxfiles.org/linuxhelp/fileowner.html

2

हालांकि इस विशेष धागे से सीधे संबंधित नहीं है; यदि कोई फ़ाइल एक विंडोज सिस्टम बन गई है तो लाइन के अंत में एक सीआर/एलएफ हो सकता है। यह प्रारंभिक निष्पादन लाइन सहित फ़ाइल में सभी पंक्तियों को प्रभावित करेगा, और यदि आप फ़ाइल देख रहे हैं तो दिखाई नहीं देगा।

$ ./test.sh 
-bash: ./test.sh: /bin/bash^M: bad interpreter: No such file or directory 

इस देखने के लिए, आप बिल्ली फ़ाइल -एक कर सकता: $ बिल्ली -एक ./test.sh #/bin/bash^एम $ गूंज "मुझे"^एम $

निकालने के लिए, dos2unix का उपयोग करें।

0

chmod +x ./test.sh का उपयोग करें, यह आपको इसे चलाने की अनुमति दे सकता है।

+1

पर विचार करें, लेकिन ओपी पहले से ही नोट किया गया है कि' chmod 755' काम नहीं करता है। –

0

इसके अलावा, यह देखने के लिए जांचें कि क्या स्क्रिप्ट युक्त निर्देशिका/फाइल सिस्टम एनएफएस-माउंट है। रूट nfs- आरोहित स्थानों से स्क्रिप्ट नहीं चलाएगा।

0

आप ./test.sh का उपयोग जब आप उस फ़ाइल की निर्देशिका में, यदि आप नहीं, PATH TO THE SCRIPT .or आप /data के कुछ डायरेक्टरी में कॉपी कर सकते हैं खोल के लिए कोशिश करते हैं और यह chmod, फिर ऊपर steeps.if कर आप की जरूरत अभी भी असफल है, यह ठीक है क्योंकि मुझे एक ही समस्या है, मैंने इसे एक बार के लिए सफलतापूर्वक किया है।

+0

ओप को "अनुमति अस्वीकार" मिली, पथ पथ की समस्या नहीं – Gar

+0

यदि आप रूट उपयोगकर्ता हैं और अभी भी समस्या है, तो आपका खोल टूट गया है। मुझे पता है क्योंकि मैं sh shell के कई कमांड निष्पादित नहीं कर सका (जैसा कि बाश) मैंने भी रूट के रूप में कोशिश की और कहा कि अनुमति आपके जैसी अस्वीकार कर दी गई है, मैं अनुमति नहीं बदल सका। तब मैंने उन्हें '/ data' में अपनी निर्देशिका में कॉपी करने की कोशिश की, अनुमति बदल दी और मैं फिर से आदेशों का उपयोग कर सकता था। लेकिन जब मैं स्क्रिप्ट निष्पादित करने का प्रयास करें, यह ऐसी कोई फ़ाइल या निर्देशिका नहीं है। –

3

स्क्रिप्ट की आवश्यकता निष्पादन योग्य है। इसका उपयोग करें:

chmod +x <script-name> 
संबंधित मुद्दे

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