yn2011's blog

技術メモ

bashコマンドは読取権限のあるファイルなら処理できる

環境

Permission denied

  • $ touch hoge.sh && ./hoge.shするとbash: ./hoge.sh: Permission deniedになる
    • 実行権限がない
  • しかし$ touch hoge.sh && bash hoge.shは正常終了するのはなぜか?

読取権限

  • $ chmod u-r hoge.shして所有者の読取権限を剥奪するとbash hoge.shbash: ./hoge.sh: Permission deniedとなる
  • bashコマンドはファイルから読み取った内容をbashコマンドが実行しているのに対して、.コマンドはファイルから読み取った内容を実行する際にOSの実行権限が必要になっている模様(推論、あまり詳しくないので違っていたら教えてください)