1. ホーム
  2. macos

[解決済み] macプロンプトでのスクリプト実行 "Permission denied"

2023-01-05 16:58:58

質問

Mac初心者で、ターミナルコマンドに慣れていないのですが、このような場合どうすればいいのでしょうか? dvtcolorconvert.rb ファイルを置いたところ、この Ruby スクリプトは xcode 3 のテーマを xcode 4 のテーマフォーマットに変換することができました。 xxxxxxxx.dvtcolortheme 形式です。

次にスクリプトを実行します。 /dvtcolorconvert.rb ~/Themes/ObsidianCode.xccolortheme をターミナルで実行しますが、常にプロンプト " が表示されます。 パーミッションが拒否されました。 と表示されます。

これの何が問題なのでしょうか?誰かこの問題を解決するのを助けることができますか?ありがとうございます。

どのように解決するのですか?

で実行しようとする前に、回答全体を読んでください。 sudo

実行を試みる sudo /dvtcolorconvert.rb ~/Themes/ObsidianCode.xccolortheme

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

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

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

まだ問題がある場合は、次のコマンドを実行してファイルのパーミッションを確認できます。 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」(read, write, execute)の3文字のグループに分けることができる。もし、このファイルに実行権限を追加したい場合は、次のように実行します。 chmod 755 readme.txt と実行し、そのパーミッションの部分は次のようになります。 rwxr-xr-x . これで、このファイルを実行したい場合は、次のように実行することができます。 ./readme.txt (./ は、$PATH 変数を検索するのではなく、意図するコマンドのためにカレントディレクトリを検索するように bash に伝えます)。

schluchc は chmod の man ページを見ることを勧めていますが、これを実行するには man chmod . これは、与えられたコマンドに関するドキュメントを得るための最良の方法です。 man <command>