2012-09-05 12 views
35

を「許可が拒否された」私は、ターミナルコマンドで慣れていないとMacに新たなんだ、私はこのRubyスクリプトは、Xcodeの4つのテーマ形式にXcodeの3つのテーマを変換することができ、私のボリュームのルートディレクトリにdvtcolorconvert.rbファイルを置きますこれはxxxxxxxx.dvtcolortheme形式です。実行スクリプト

その後、/dvtcolorconvert.rb ~/Themes/ObsidianCode.xccolorthemeスクリプトを端末で実行しますが、「許可が拒否されました。」というメッセージが常に表示されます。

何が問題なのですか?誰も私がこの問題を解決するのを助けることができますか?ありがとう。

答えて

36

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

を実行してみてくださいsudo

を実行する前に、全体の答えを読んでsudoコマンドは、「スーパー」や「ルート」権限でそれに続くコマンドを実行してください。これにより、コマンドラインからほとんど何かを実行できるようになります。つまり、これをしないでください!お使いのコンピュータ上でスクリプトを実行していると、オペレーティングシステムのコアコンポーネントにアクセスするためにそれを必要としない場合は(私はあなたがあなたのホームディレクトリ内の何かにスクリプトを起動しているので、あなたがいないなら推測している(〜/)) 、それはすなわち、自分のホームディレクトリから実行されている必要があります。

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

〜/に移動し、それをまたはサブディレクトリとは、そこから実行します。あなたはそこに権限の問題を持っていることはありませんし、あなたのOSに重要な何かをアクセスしたり、修正することの危険性が文句を言いません。

あなたはまだあなたがRubyスクリプトと同じディレクトリに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変数を検索するのではなく、現在のディレクトリで目的のコマンドを探すようにbashに指示します)を実行したい場合にこのファイルを実行できます。

schluchcは、chmodのマニュアルページを参照するには、man chmodを実行してください。これは、指定されたコマンドに関するドキュメントを取得する最も良い方法です。man <command>

+0

ありがとう!しかし、ホームディレクトリはどこですか(〜/)?デスクトップという意味ですか? –

+0

シェルは、 'echo〜'、通常は '/ Users/$ USER'でそれを伝えることができます。デスクトップはその下のディレクトリです。 UnixのGUIはホームディレクトリを表示しないようにしていますが、まだそこにあります。 –

+1

'echo $ HOME'を実行すると、ホームディレクトリへのパスを取得できます。おそらく/ Users/か/ Users/

1

あなたのRubyスクリプト(実行権限がないかもしれません)、あなたのテーマファイルとディレクトリ(そのテーマを読むことができない場合やその中に他のテーマを作成しようとする場合)のアクセス権を確認してください。あなたスクリプトを実行するときに(現在のディレクトリに一時ファイルを作成する場合は、/tmpではなく)。

いずれかがあなたに悲しみを引き起こしている可能性があります。

0

スクリプトを 'スーパーユーザー'として実行する必要があります。コマンドの前に 'sudo'を追加し、プロンプトが表示されたらパスワードを入力してください。

ので、試してみてください。

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コマンドのmanページをお読みください。

+2

これが受け入れられる回答である必要があります。明確で簡潔で、うまくいきます。 – dialex

+0

私は使用しました:sudo chmod 777 'filename' –

2

私の場合、私はシバンに愚かなタイプミスをしました。 ZSHが間違った道を私を送っ与え#!/usr/bin/env ruby

あいまいなエラー:

おっと::私は書くことを意図#!/usr/local/bin ruby

だから場合には脂肪を指で上の他の誰かがこの質問を越えつまずきます:

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

バッシュ:bash: ./foo.rb: /usr/local/bin: bad interpreter: Permission denied