Linux・シェル4 択難易度 基礎

./run.sh で Permission denied と出た。適切な対処は?

正答

  1. sudo ./run.sh として管理者権限で実行する
  2. chmod +x run.sh で実行権限を付けてから実行する
  3. chmod 777 run.sh で全員に全権限を付ける
  4. ファイル名を run.exe に変えて実行する

解説

./run.sh のようにパスで直接実行するには、そのファイルに実行権限 x が必要である。無い場合に Permission denied になるので chmod +x run.sh で付ければよい。sudo でも実行権限が 1 つも無いファイルは実行できず、不要な管理者権限を使う習慣にもなる。777 は全員に書き込みまで許すため、他人がスクリプトを改変できる状態になり不適切である。拡張子は Linux では実行可否と無関係である。なお bash run.sh と書けば x 権限無しでも実行できる。

参考: www.gnu.org

permissionexecutechmod

この問題を含む Linux・シェル のテストを制限時間つきで解く

Linux・シェルクイズへ