मैक प्रॉम्प्ट पर स्क्रिप्ट चलाएँ "अनुमति अस्वीकृत"


83

मैं टर्मिनल कमांड पर परिचित नहीं होने के साथ मैक के लिए नया हूं, मैंने dvtcolorconvert.rbफाइल को अपने वॉल्यूम के रूट डायरेक्टरी पर रखा है , यह रूबी स्क्रिप्ट xcode 3 थीम को xcode 4 थीम फॉर्मेट में परिवर्तित कर सकती है, जो कि xxxxxxxx.dvtcolorthemeफॉर्मेट है।

फिर स्क्रिप्ट /dvtcolorconvert.rb ~/Themes/ObsidianCode.xccolorthemeको टर्मिनल पर चलाएं , लेकिन यह हमेशा " अनुमति अस्वीकृत " होने का संकेत देता है ।

इसमें गलत क्या है? इस समस्या को हल करने में कोई भी मेरी मदद कर सकता है? धन्यवाद।

जवाबों:


72

साथ चलने का प्रयास करने से पहले कृपया पूरा उत्तर पढ़ें sudo

दौड़ने की कोशिश करो sudo /dvtcolorconvert.rb ~/Themes/ObsidianCode.xccolortheme

सूडो कमांड उन कमांड्स को निष्पादित करता है जो 'सुपरसुअर' या 'रूट' विशेषाधिकारों के साथ इसका पालन करते हैं। यह आपको कमांड लाइन से लगभग कुछ भी निष्पादित करने की अनुमति देनी चाहिए। उस ने कहा, यह मत करो! यदि आप अपने कंप्यूटर पर एक स्क्रिप्ट चला रहे हैं और इसे आपके ऑपरेटिंग सिस्टम के मुख्य घटकों तक पहुँचने की आवश्यकता नहीं है (मुझे लगता है कि आप तब से नहीं हैं जब आप अपने होम डायरेक्टरी (~ /)) के अंदर किसी चीज़ पर स्क्रिप्ट का आह्वान कर रहे हैं, तो यह आपके घर निर्देशिका से चल रहा होना चाहिए, यानी:

~/dvtcolorconvert.rb ~/Themes/ObsidianCode.xccolortheme

इसे ~ / या उप निर्देशिका में ले जाएं और वहां से निष्पादित करें। आपको वहां कभी भी अनुमति की समस्या नहीं होनी चाहिए और आपके ओएस के लिए किसी भी महत्वपूर्ण चीज को एक्सेस या संशोधित करने का जोखिम नहीं होना चाहिए।

यदि आपको अभी भी समस्या हो रही है तो आप ls -lउसी निर्देशिका में माणिक स्क्रिप्ट की तरह चलते हुए फ़ाइल पर अनुमतियों की जांच कर सकते हैं । आपको कुछ इस तरह मिलेगा:

$ ls -l  
total 13  
drwxr-xr-x    4 or019268 Administ    12288 Apr 10 18:14 TestWizard  
drwxr-xr-x    4 or019268 Administ     4096 Aug 27 12:41 Wizard.Controls  
drwxr-xr-x    5 or019268 Administ     8192 Sep  5 00:03 Wizard.UI  
-rw-r--r--    1 or019268 Administ     1375 Sep  5 00:03 readme.txt

आप देखेंगे कि readme.txt फ़ाइल -rw-r--r--बाईं ओर कहती है । यह उस फ़ाइल के लिए अनुमतियाँ दिखाता है। दाईं ओर से 9 वर्णों को 'rwx' के 3 वर्णों के समूहों में विभाजित किया जा सकता है (पढ़ें, लिखें, निष्पादित करें)। यदि मैं इस फ़ाइल में निष्पादित अधिकार जोड़ना चाहता हूं तो मैं निष्पादित करूंगा chmod 755 readme.txtऔर वह अनुमति भाग बन जाएगा rwxr-xr-x। मैं अब इस फ़ाइल को निष्पादित कर सकता हूं यदि मैं चलाकर ./readme.txt(/। Bash को इच्छित कमांड के लिए वर्तमान निर्देशिका में देखने के लिए कहता हूं, बल्कि $ PATH चर खोजता है)।

schluchc chmod के लिए मैन पेज देखने के लिए दृष्टिकोण , इसे चलाकर करें man chmod। किसी दिए गए आदेश पर प्रलेखन प्राप्त करने का यह सबसे अच्छा तरीका है,man <command>


धन्यवाद! लेकिन घर की निर्देशिका (~ /) कहां है? इसका मतलब है डेस्कटॉप?
एंडी_ २४

शेल आपको बता सकता है कि echo ~आमतौर पर /Users/$USER। डेस्कटॉप नीचे एक निर्देशिका है। यूनिक्स GUI घर की निर्देशिका को दृश्य से छिपाते हैं, लेकिन यह अभी भी है।
हेनक लैंगवेल्ड

1
आप दौड़ कर अपने घर निर्देशिका के लिए पथ प्राप्त कर सकते हैं echo $HOME। यह संभवतः कुछ इस तरह दिखेगा / Users / <username> या संभवतः / Users / <iTunes username>
sean_m

@sean_m आपके विस्तृत विवरण के लिए धन्यवाद, मुझे पहले से ही पता है।
एंडी_ 24

अद्भुत उत्तर के लिए धन्यवाद
Faris Rayhan

247

क्या आपने स्क्रिप्ट को निष्पादित करने का अधिकार दिया?

सुपर यूजर के रूप में निम्न कमांड आपके लिए यह करेगा:

sudo chmod 755 'filename'

विवरण के लिए आपको chmod के मैन पेज को पढ़ना चाहिए।


4
यह स्वीकृत उत्तर होना चाहिए। स्पष्ट, संक्षिप्त और यह सिर्फ काम करता है।
डायलेक्स

3
मैंने इस्तेमाल किया: सुडोम चामोद 777 'फ़ाइलनाम'
हेमंत कौशिक

@HemantKaushik यकीन है, वे दोनों काम करते हैं लेकिन क्या आप अंतर जानते हैं?
हाल ही में

3
@ hally9k 777 सभी को आपकी फ़ाइल को संशोधित करने की अनुमति देता है। 755 के साथ, केवल आप और रूट उपयोगकर्ता फाइल को संशोधित कर सकते हैं, जो इसे अधिक सुरक्षित रखता है।
स्टीव ब्रीज

4

मेरे मामले में, मैंने शेबंग में एक बेवकूफ टाइपो बनाया था।

इस मामले में किसी अन्य व्यक्ति की मोटी उंगलियां इस सवाल से टकराती हैं:

ओह: #!/usr/local/bin ruby

मेरा लिखने का मतलब था: #!/usr/bin/env ruby

अस्पष्ट त्रुटि ZSH ने मुझे गलत रास्ते पर भेज दिया:

ZSH: zsh: permission denied: ./foo.rb

दे घुमा के: bash: ./foo.rb: /usr/local/bin: bad interpreter: Permission denied


3

आपको स्क्रिप्ट को 'सुपरयुसर' के रूप में चलाना चाहिए, बस कमांड के सामने 'सुडो' जोड़ें और संकेत मिलने पर अपना पासवर्ड टाइप करें।

इसलिए कोशिश करें:

sudo /dvtcolorconvert.rb ~/Themes/ObsidianCode.xccolortheme

यदि यह काम नहीं करता है, तो अनुमतियों को अपनाने का प्रयास करें:

sudo chmod 755 /dvtcolorconvert.rb
sudo chmod 755 ~/Themes/ObsidianCode.xccolortheme

2
ओह, नहीं जरूरी कुछ मैं जब तक आप सुझाव देंगे रफ़ू यकीन है कि स्क्रिप्ट चोट कुछ भी नहीं कर सकते।
paxdiablo


1

अपनी रूबी लिपि पर अनुमतियों की जांच करें (आपकी अनुमति नहीं हो सकती है), आपकी थीम फ़ाइल और निर्देशिका (यदि वह विषय नहीं पढ़ सकती है या वहां अन्य विषय बनाने की कोशिश नहीं कर सकती है), और आपके द्वारा चलाए जाने पर निर्देशिका स्क्रिप्ट (मामले में यह तब मौजूदा निर्देशिका में अस्थायी फ़ाइलें बनाता है /tmp)।

उनमें से कोई भी आपको दुखी कर सकता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.