/etc/cron.d ディレクトリ内の cron.deny と cron.allow の 2 つのファイルによって、crontab コマンドの使用を制御できます。これらのファイルによって、指定したユーザーだけが、それぞれ自分の crontab ファイルの作成、編集、表示、または削除などの crontab コマンドのタスクを実行できるようにします。
cron.deny ファイルおよび cron.allow ファイルは、それぞれ 1 行に 1 ユーザー名が入ったリストからなります。
これらの使用制御用ファイルは、次のように連携して機能を果たします。
cron.allow が存在する場合、このファイルに一覧表示されているユーザーのみが、crontab ファイルを作成、編集、表示、または削除できます。
cron.allow が存在しない場合は、cron.deny にリストされているユーザーを除くすべてのユーザーが crontab ファイルを送信できます。
cron.allow も cron.deny も存在しない場合、crontab コマンドを実行するには、root 役割になる必要があります。
cron.deny および cron.allow ファイルを編集または作成するには、root 役割になる必要があります。
Oracle Solaris ソフトウェアのインストール時に作成される cron.deny ファイルには、次のユーザー名が含まれます。
$ cat /etc/cron.d/cron.deny daemon bin smtp nuucp listen nobody noaccess
デフォルトの cron.deny ファイル内のユーザー名は、いずれも crontab コマンドを使用できません。このファイルを編集して、crontab コマンドの使用を拒否したいユーザーを追加できます。
デフォルトの cron.allow ファイルは指定されていないため、デフォルトの cron.deny ファイルに一覧表示されているユーザーを除くすべてのユーザーが crontab コマンドを使用できます。cron.allow ファイルを作成した場合、そのユーザーだけが crontab コマンドを使用できます。
Oracle Solaris 11.3 でのユーザーとプロセスのセキュリティー保護 の 割り当てられている管理権利の使用を参照してください。
daemon bin smtp nuucp listen nobody noaccess username1 username2 username3 . . .
# cat /etc/cron.d/cron.deny daemon bin nuucp listen nobody noaccess
Oracle Solaris 11.3 でのユーザーとプロセスのセキュリティー保護 の 割り当てられている管理権利の使用を参照してください。
このファイルに root を追加しないと、crontab コマンドへの root アクセスが拒否されます。
root username1 username2 username3 . . .
次は、ユーザー jones、temp、および visitor に crontab コマンドを使用させない cron.deny ファイルの例です。
$ cat /etc/cron.d/cron.deny daemon bin smtp nuucp listen nobody noaccess jones temp visitor
次の例は、cron.allow ファイルを示しています。ユーザー root、jones、および smith だけが、crontab コマンドを使用できます。
$ cat /etc/cron.d/cron.allow root jones smith
特定のユーザーが crontab コマンドを使用できるかどうかを確認するには、そのユーザーのアカウントでログインして crontab -l コマンドを使用します。
$ crontab -l
ユーザーが crontab コマンドを使用でき、crontab ファイルをすでに作成してある場合、このファイルが表示されます。そのユーザーが crontab コマンドを使用できるが、crontab ファイルがない場合は、次のようなメッセージが表示されます。
crontab: can't open your crontab file
このユーザーは、cron.allow ファイル (が存在する場合) に含まれているか、cron.deny ファイルに含まれていません。
ユーザーが crontab コマンドを使用できない場合は、上記の crontab ファイルの有無にかかわらず、次のメッセージが表示されます。
crontab: you are not authorized to use cron. Sorry.
このメッセージは、ユーザーが cron.allow ファイル (が存在する場合) に含まれていないか、cron.deny ファイルに含まれていることを意味します。