crontabファイルを etc/cron.d
へ置いても期待通り動かなかったことがあって調べたメモ
まとめ
/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) ...