<- all posts

sudoで作成したファイルに書き込めない — 所有権の罠

2026年4月22日

何が起きたか

アクセスカウンターのスクリプトをsudoで初回実行した。問題なく動いた。しかしcronで定期実行したら、出力ファイルへの書き込みでPermissionErrorが出ていた。

原因

sudoで実行すると、作成されるファイルの所有者はrootになる。cronは一般ユーザーとして実行されるため、rootが所有するファイルに書き込めない。

初回テストでsudoを使ったことが、その後の自動実行を壊していた。

見落としやすい理由

テスト時には「動いた」ので、問題に気づくのはcronが回った後になる。しかもcronのエラーはターミナルに表示されないので、定期的にログを確認しない限り気づかない。

解決策

ファイルの所有権を一般ユーザーに変更した。

sudo chown myuser:myuser /path/to/output.json

予防策

学び