モヒカンは正義

渋谷で働く怪しいWebエンジニアの生きた証と備忘録

/etc/cron.dへ置くファイルにはownerとpermissionに制約があるっぽい

crontabファイルを etc/cron.d へ置いても期待通り動かなかったことがあって調べたメモ

f:id:pinkumohikan:20170708185525p:plain

まとめ

/etc/cron.dへ置くファイルは

  • ownerは、rootでなければならない
  • permissionは、owner以外に書き込み権限があってはならない

検証

ownerがroot、かつowner以外のwrite権限無しなら怒られない

$ sudo tee /etc/cron.d/hoge << EOM
> * * * * * root echo 'hoge' > /dev/null
> EOM
* * * * * root echo 'hoge' > /dev/null

$ sudo chmod 600 /etc/cron.d/hoge

$ sudo ls -al /etc/cron.d/hoge
-rw------- 1 root root 39  7月  8 18:41 /etc/cron.d/hoge

結果

$ sudo tail -f /var/log/cron
...
Jul  8 18:42:01 marlin CROND[10186]: (root) CMD (echo 'hoge' > /dev/null)
...

permissionがgroup write有りだと怒られる

$ sudo chmod 660 /etc/cron.d/hoge

$ sudo ls -al /etc/cron.d/hoge
-rw-rw---- 1 root root 39  7月  8 18:42 /etc/cron.d/hoge

結果

$ sudo tail -f /var/log/cron
...
Jul  8 18:43:01 marlin crond[7153]: (root) BAD FILE MODE (/etc/cron.d/hoge)
...

ownerがroot以外だと怒られる

$ sudo chmod 600 /etc/cron.d/hoge

$ sudo chown h-shinoda /etc/cron.d/hoge

$ sudo ls -al /etc/cron.d/hoge
-rw------- 1 h-shinoda root 39  7月  8 18:42 /etc/cron.d/hoge

結果

$ sudo tail -f /var/log/cron
...
Jul  8 18:48:01 marlin crond[7153]: (root) WRONG FILE OWNER (/etc/cron.d/hoge)
...

参考にした資料