./run.sh で Permission denied と出た。適切な対処は?
正答
sudo ./run.shとして管理者権限で実行する- chmod +x run.sh で実行権限を付けてから実行する
chmod 777 run.shで全員に全権限を付ける- ファイル名を run.exe に変えて実行する
解説
./run.sh のようにパスで直接実行するには、そのファイルに実行権限 x が必要である。無い場合に Permission denied になるので chmod +x run.sh で付ければよい。sudo でも実行権限が 1 つも無いファイルは実行できず、不要な管理者権限を使う習慣にもなる。777 は全員に書き込みまで許すため、他人がスクリプトを改変できる状態になり不適切である。拡張子は Linux では実行可否と無関係である。なお bash run.sh と書けば x 権限無しでも実行できる。
参考: www.gnu.org
この問題を含む Linux・シェル のテストを制限時間つきで解く
Linux・シェルクイズへ