CentOS7/Ubuntu16 で cron のオーナー/パーミッションを変更した場合の挙動
ユーザ毎の cron ファイルに対して、以下のケースで挙動を見てみました。テストは CentOS7 と Ubuntu16 で実施しました。
- オーナーを変更した場合
- パーミッションを変更した場合
結果¶
以下のような結果になりました。CentOS7 の方がオーナーやパーミッションの判定が厳しいようです。
| OS | ユーザ毎の設定ファイル位置 | オーナーを変更した場合の挙動 | パーミッションを変更した場合の挙動 |
|---|---|---|---|
| CentOS7 | /var/spool/cron | X(WRONG FILE OWNER エラー) | X(BAD FILE MODE エラー) |
| Ubuntu16 | /var/spool/cron/crontabs | ○ | ○ |
デフォルトのオーナー/パーミッション¶
CentOS7¶
crontab -u USERNAME でユーザ毎の設定ファイルを作成した場合、/var/spool/cron 配下にファイルが作成されました。各ディレクトリのオーナー/パーミッションは以下のようになっていました。
# tree -fpug /var/spool
/var/spool
・
・
・
├── [drwx------ root root ] /var/spool/cron
│ └── [-rw------- root root ] /var/spool/cron/user
・
・
・
Ubuntu 16¶
crontab -u USERNAME でユーザ毎の設定ファイルを作成した場合、/var/spool/cron/crontabs 配下にファイルが作成されました。各ディレクトリのオーナー/パーミッションは以下のようになっていました。
# tree -fpug /var/spool/
/var/spool
|-- [drwxr-xr-x root root ] /var/spool/cron
| `-- [drwx-wx--T root crontab ] /var/spool/cron/crontabs
| `-- [-rw------- user crontab ] /var/spool/cron/crontabs/user
・
・
・
ファイルの所有者を変更した場合¶
CentOS7¶
ファイルの所有者を「user」以外に変更してみました。
/var/log/cron を確認すると「エラーになり、cron が実行されていない」ことが確認出来ました。
Ubuntu16¶
ファイルの所有者を「user」以外に変更してみました。
# ls -al /var/spool/cron/crontabs/user
-rw------- 1 user2 user 1109 Nov 3 15:21 /var/spool/cron/crontabs/user
/var/log/syslog を確認すると「cron が実行されていること」が確認出来ました。
ファイルのパーミッションを変更した場合¶
ファイルのパーミッションを変更し、グループにも Read/Write 権限を付与してみました。
/var/log/cron を確認すると「エラーになり、cron が実行されていない」ことが確認出来ました。
Ubuntu16¶
ファイルのパーミッションを変更し、グループにも Read/Write 権限を付与してみました。
# ls -al /var/spool/cron/crontabs/user
-rw-rw---- 1 user crontab 1109 Nov 3 15:21 /var/spool/cron/crontabs/user
/var/log/syslog を確認すると「cron が実行されていること」が確認出来ました。