2012-09-05 15 views
35

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

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

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

उत्तर

36

कृपया sudo /dvtcolorconvert.rb ~/Themes/ObsidianCode.xccolortheme

चलाने की कोशिश करें sudo

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

~/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 

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

schluchc chmod के लिए मैन पेज को देखने के लिए, man chmod चलाकर ऐसा करें। दिए गए कमांड पर प्रलेखन प्राप्त करने का यह सबसे अच्छा तरीका है, man <command>

+0

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

+0

खोल आपको बता सकता है कि 'echo ~', आमतौर पर '/ उपयोगकर्ता/$ USER' के साथ। डेस्कटॉप बस नीचे एक निर्देशिका है। यूनिक्स जीयूआई होम निर्देशिका को देखने से छिपाते हैं, लेकिन यह अभी भी वहां है। –

+1

आप 'echo $ HOME' चलाकर अपनी होम निर्देशिका का मार्ग प्राप्त कर सकते हैं। यह संभवतः कुछ उपयोगकर्ता/ या संभावित रूप से/उपयोगकर्ता/

1

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

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

0

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

तो कोशिश:

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

अगर यह काम नहीं करता है, अनुमतियाँ अनुकूल कोशिश:

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

ओह, मैं कुछ भी नहीं सुझाता हूं जब तक कि आप _darn_ सुनिश्चित नहीं करते हैं कि स्क्रिप्ट कुछ भी चोट नहीं पहुंचा सकती है। – paxdiablo

106

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

निम्न आदेश सुपर उपयोगकर्ता आप के लिए यह कर देगा के रूप में:

sudo chmod 755 'filename'

जानकारी के लिए आप chmod मैन ऑफ द पेज पढ़ना चाहिए।

+2

यह स्वीकार्य उत्तर होना चाहिए। साफ़, संक्षिप्त और यह सिर्फ काम करता है। – dialex

+0

मैंने उपयोग किया: सुडो चमोद 777 'फ़ाइल नाम' –

2

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

ओह: #!/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

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