「Permission denied」の原因切り分け
プロセスがどのファイル操作でアクセス拒否(EACCES)を返されているかを特定する
実行コマンド
strace -f -e trace=file ./run_script.sh💡 利用シーン
スクリプト実行中にエラーが発生するが、どのファイルに対して権限不足が起きているか分からないとき
💻 実行結果例
openat(AT_FDCWD, "/protected/data.db", O_RDWR) = -1 EACCES (Permission denied)📝 実務メモ
-f オプションでサブプロセスも含めて監視します
⚠️ 注意点
実行ファイルがルート権限を必要とする場合、sudoをつけて実行する必要があります