bash: permission denied
ファイルの実行権限がない場合に発生するエラー
概要
bash: ./script.sh: Permission denied は、実行権限のないファイルを実行しようとした場合に発生するエラーです。ファイルの権限設定を変更することで解決できます。
エラーメッセージ
bash: ./script.sh: Permission denied
-bash: /usr/local/bin/command: Permission denied
原因
- 実行権限がない: ファイルに実行権限が付与されていない
- 所有者の問題: 他のユーザーが所有するファイル
- マウントオプション: noexec でマウントされている
- SELinux/AppArmor: セキュリティポリシーで制限
- スクリプトのシェバン: 不正なインタープリタ指定
解決策
1. 実行権限を付与
| |
2. bash で直接実行
| |
3. 所有者を変更
| |
4. シェバンの確認
| |
5. マウントオプションの確認
| |
6. SELinux の問題(CentOS/RHEL)
| |
7. AppArmor の問題(Ubuntu)
| |
8. バイナリファイルの問題
| |
9. sudo での実行
| |
10. ディレクトリの権限
| |
よくあるシナリオ
Git からクローンしたスクリプト
| |
Docker 内でのスクリプト実行
| |
cron ジョブ
| |
デバッグのコツ
詳細な権限情報
| |
パスの確認
| |
Linux の他のエラー
この記事は役に立ちましたか?