98

端末コマンドに慣れていないため、Mac を初めてdvtcolorconvert.rb使用します。ボリュームのルート ディレクトリにファイルを置きます。この Ruby スクリプトは、xcode 3 テーマを xcode 4 テーマ形式に変換できxxxxxxxx.dvtcolorthemeます。

/dvtcolorconvert.rb ~/Themes/ObsidianCode.xccolortheme次に、ターミナルでスクリプトを実行しますが、常に「許可が拒否されました」というプロンプトが表示されます。

これの何が問題なのですか?誰でもこの問題を解決するのを手伝ってくれますか? ありがとう。

4

7 に答える 7

284

スクリプトを実行する権限を自分自身に与えましたか?

スーパーユーザーとして次のコマンドを実行すると、これが実行されます。

sudo chmod 755 'filename'

詳細については、chmod の man ページを参照してください。

于 2012-09-05T07:31:09.423 に答える
77

で実行する前に、回答全体をお読みくださいsudo

実行してみてくださいsudo /dvtcolorconvert.rb ~/Themes/ObsidianCode.xccolortheme

sudo コマンドは、それに続くコマンドを「スーパーユーザー」または「ルート」権限で実行します。これにより、コマンドラインからほとんど何でも実行できるようになります。そうは言っても、これをしないでください!コンピューターでスクリプトを実行していて、オペレーティング システムのコア コンポーネントにアクセスする必要がない場合 (ホーム ディレクトリ (~/) 内の何かでスクリプトを呼び出しているため、そうではないと思います)、次に、ホームディレクトリから実行する必要があります。つまり、次のようになります。

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

~/ またはサブディレクトリに移動して、そこから実行します。そこにアクセス許可の問題が発生することは決してなく、OS にとって重要なものにアクセスしたり変更したりするリスクはありません。

それでも問題が解決しない場合はls -l、ruby スクリプトと同じディレクトリで実行して、ファイルのアクセス許可を確認できます。次のようなものが得られます。

$ 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(./ は、$PATH 変数を検索するのではなく、目的のコマンドを現在のディレクトリで検索するように bash に指示します)。

schluchcは、chmod の man ページを見ることをほのめかしています。これを実行するには、man chmod. これは、特定のコマンドに関するドキュメントを取得する最良の方法です。man <command>

于 2012-09-05T07:34:53.710 に答える
5

私の場合、私はシバンでばかげたタイプミスをしました。

したがって、太い指を持っている他の誰かがこの質問に出くわした場合:

おっと:#!/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

于 2015-02-02T20:37:12.317 に答える
3

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

だから試してみてください:

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

これが機能しない場合は、権限を調整してみてください。

sudo chmod 755 /dvtcolorconvert.rb
sudo chmod 755 ~/Themes/ObsidianCode.xccolortheme
于 2012-09-05T07:30:30.653 に答える
1

Rubyスクリプトのアクセス許可(実行権限がない場合があります)、テーマファイルとディレクトリ(テーマを読み取れない場合、またはそこに他のテーマを作成しようとする場合)、および実行時に現在のディレクトリを確認します。スクリプト(スクリプトではなく現在のディレクトリに一時ファイルを作成する場合/tmp)。

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

于 2012-09-05T07:30:29.833 に答える