cronの利用制限はユーザ単位で実施できる。
ユーザーを制限するには以下の2つのファイルを使う。
・/etc/cron.allow
・/etc/cron.deny
ファイル詳細確認
[root@localhost ~]# ls -l /etc/cron.{allow,deny}
ls: '/etc/cron.allow' にアクセスできません: そのようなファイルやディレクトリはありません
-rw-r--r--. 1 root root 0 10月 25 15:57 /etc/cron.deny
デフォルトでは・・・
・cron.allowファイルは存在しない。
・cron.denyファイルは存在するが、空ファイル。
よってデフォルトの状態ではすべてのユーザーがcronを使える。
ただし/etc配下のファイルを編集できるのはrootユーザのみ!
ユーザ許可設定する
/etc/cron.allow
にcronの利用制限させたいユーザーを登録する。
[root@localhost ~]# cat > /etc/cron.allow << EOF
> tanaka
> yamada
> suzuki
> EOF
[root@localhost ~]# cat /etc/cron.allow
tanaka
yamada
suzuki
viコマンドではなく、ヒアドキュメントで複数行のテキストを記述しました。(新しいlinuxの教科書P.333)
設定が終わったので動作確認をする。
/etc/cron.allowに登録したユーザーがcrontabを使えるのかを確認する。
現在rootユーザなので一度exitで抜け、tanakaでログインし、crontabは使えるか確認する。
[root@localhost ~]# exit
ログアウト
[mgt@localhost ~]$ su - tanaka
パスワード:
[tanaka@localhost ~]$ whoami
tanaka
[tanaka@localhost ~]$ crontab -l
no crontab for tanaka
使えることを確認しました。
では、/etc/cron.allowで登録していないユーザーでcrontab使えるか確認。
[mgt@localhost ~]$ su - nakajima
パスワード:
[nakajima@localhost ~]$ whoami
nakajima
[nakajima@localhost ~]$ crontab -l
You (nakajima) are not allowed to use this program (crontab)
See crontab(1) for more information
nakajimaはcrontab利用が許可されていないことを確認できます。