2013年8月29日木曜日

cron(crontab)を使えるユーザを制御する方法

定期的に処理を実行するには欠かせないcron。デフォルトだと誰でも実行できるようになっているけれども、要件によっては「このユーザにはcron使わせたくねぇな(;´Д`)」とか「基本的には誰にも使わせたくないんだけど、コイツだけには使わせてやるか(*゜∀゜*)」的なことをやりたい場合がある。

で、それは簡単に実現できるよ……というお話。あ、CentOS 6.x系のお話ね。

ということで、RTFMの格言(?)を思い出しつつ、crontab(1)のman pageを参照してみる。それについて書かれている部分を一部引用したのがコイツ。

allow ファイルが存在する場合、ユーザーがこのコマンドを使用するには、 そのファイル中に(そのユーザーが)リストアップされている必要がある。 allow ファイルは存在せずに deny ファイルが存在する場合、ユーザーがこのコマンドを使用するには、 deny ファイル中にリストアップされて いない 必要がある。 いずれのファイルも存在しない場合、スーパーユーザーのみがこのコマンドを 使えるか、あるいはすべてのユーザーがこのコマンドを使えることになり、 そのいずれであるかはサイトに依存した設定パラメータによって決まる。
ちなみに文中の「allowファイル」というのは「/etc/cron.allow」、「denyファイル」ってのは「/etc/cron.deny」のこと……だと思ってたんだけど、man pageによるとそれぞれ「/var/cron/allow」、「/var/cron/deny」って書いてあるな(゜Д゜;)

RPM(cronie-1.4.4-7.el6.x86_64)の中身を見てみると、下記の通り「/etc/cron.deny」が作られてるから、「/etc/cron.allow」と「/etc/cron.deny」で良いと思われる。たぶん。

# rpm -ql cronie
/etc/cron.d
/etc/cron.d/0hourly
/etc/cron.deny
/etc/pam.d/crond
/etc/rc.d/init.d/crond
/etc/sysconfig/crond
/usr/bin/crontab
/usr/sbin/crond
/usr/share/doc/cronie-1.4.4
/usr/share/doc/cronie-1.4.4/AUTHORS
/usr/share/doc/cronie-1.4.4/COPYING
/usr/share/doc/cronie-1.4.4/ChangeLog
/usr/share/doc/cronie-1.4.4/INSTALL
/usr/share/doc/cronie-1.4.4/README
/usr/share/man/man1/crontab.1.gz
/usr/share/man/man5/crontab.5.gz
/usr/share/man/man8/cron.8.gz
/usr/share/man/man8/crond.8.gz
/var/spool/cron

0 件のコメント:

コメントを投稿