cron.deny と cron.allow という /etc/cron.d ディレクトリ内の 2 つのファイルを使用して、crontab の使用を制御できます。これらのファイルによって、指定したユーザーだけが、それぞれ自分の crontab ファイルの作成、編集、表示、または削除などの crontab コマンドのタスクを実行できるようにします。
cron.deny および cron.allow ファイルは、それぞれ 1 行に 1 ユーザー名が入ったリストからなります。これらの使用制御用ファイルは、次のように連携して機能を果たします。
cron.allow が存在する場合は、このファイルにリストされているユーザーだけが crontab ファイルを作成、編集、表示、または削除できます。
cron.allow が存在しない場合は、cron.deny にリストされているユーザーを除くすべてのユーザーが crontab ファイルの実行を依頼できます。
cron.allow も cron.deny も存在しない場合は、root 以外は crontab コマンドを実行できません。
cron.deny と cron.allow ファイルを編集または作成するには、スーパーユーザーの権限が必要です。
Solaris ソフトウェアのインストール時に作成される cron.deny ファイルには、次のユーザー名が含まれます。
$ cat /etc/cron.d/cron.deny daemon bin smtp nuucp listen nobody noaccess |
デフォルトの cron.deny ファイル内のユーザー名は、いずれも crontab コマンドを使用できません。このファイルを編集して、crontab コマンドの使用を拒否したいユーザー名を追加できます。
デフォルトでは、cron.allow ファイルは提供されません。つまり、Solaris ソフトウェアをインストールした直後は、すべてのユーザー (デフォルトの cron.deny ファイルにリストされているユーザーを除く) が crontab コマンドを使用できます。cron.allow ファイルを作成した場合、そのユーザーだけが crontab コマンドを使用できます。
スーパーユーザーになります。
/etc/cron.d/cron.deny ファイルを編集し、crontab コマンドを使用させないユーザー名を 1 行に 1 つずつ追加します。
daemon bin smtp nuucp listen nobody noaccess username1 username2 username3 . . . |
/etc/cron.d/cron.deny ファイルを確認します。
# cat /etc/cron.d/cron.deny |
/etc/cron.d/cron.allow ファイルを作成します。
root ユーザー名を cron.allow ファイルに入力します。
このファイルに root を追加しないと、スーパーユーザーの crontab コマンドの使用が拒否されます。
次のように、crontab コマンドの使用を許可するユーザー名を 1 行に 1 つずつ入力します。
root username1 username2 username3 . . . |
次は、ユーザー visitor、jones、temp に crontab を使用させない cron.deny ファイルの例です。
$ cat /etc/cron.d/cron.denydaemon bin smtp nuucp listen nobody noaccess jones temp visitor |
次は cron.allow ファイルの例です。ユーザー smith、jones、lp および root だけが、 crontab コマンドを使用できます。
$ cat /etc/cron.d/cron.allow root jones lp smith |
特定のユーザーが crontab を使用できるかどうかを確認するには、そのユーザーのアカウントでログインして crontab -l コマンドを使用します。
$ crontab -l |
そのユーザーが crontab を使用できて、すでに crontab ファイルを作成している場合は、その crontab ファイルが表示されます。そのユーザーが crontab を使用できるが、crontab ファイルがない場合は、次のようなメッセージが表示されます。
crontab:crontab ファイルを開けません |
このユーザーは、cron.allow (が存在する場合) に含まれているか、cron.deny に含まれていません。
ユーザーが crontab コマンドを使用できない場合は、上記の crontab ファイルの有無に関わらず、次のメッセージが表示されます。
crontab: cron を使用許可されていません |
このメッセージは、ユーザーが cron.allow (が存在する場合) に含まれていないか、cron.deny ファイルに含まれていることを意味します。