Solaris のシステム管理 (上級編)

crontab コマンドの使用制御

/etc/cron.d ディレクトリ内の 2 つのファイルを使用して、crontab コマンドの使用を制御できます。 これらのファイルは cron.deny および cron.allow です。これらのファイルによって、指定したユーザーだけが、それぞれ自分の crontab ファイルの作成、編集、表示、または削除などの crontab コマンドのタスクを実行できるようにします。

cron.deny ファイルおよび cron.allow ファイルは、それぞれ 1 行に 1 ユーザー名が入ったリストからなります。

これらの使用制御用ファイルは、次のように連携して機能を果たします。

cron.denycron.allow ファイルを編集または作成するには、スーパーユーザーの権限が必要です。

SunOS ソフトウェアのインストール時に作成される cron.deny ファイルには、次のユーザー名が含まれます。


$ cat /etc/cron.d/cron.deny
daemon
bin
smtp
nuucp
listen
nobody
noaccess

デフォルトの cron.deny ファイル内のユーザー名は、いずれも crontab コマンドを使用できません。このファイルを編集して、crontab コマンドの使用を拒否したいユーザー名を追加できます。

cron.allow のデフォルトファイルは提供されません。つまり、Oracle Solaris ソフトウェアをインストールした直後は、すべてのユーザー (デフォルトの cron.deny ファイルにリストされているユーザーを除く) が crontab コマンドを使用できます。cron.allow ファイルを作成した場合、そのユーザーだけが crontab コマンドを使用できます。

Procedurecrontab コマンドの使用を拒否する方法

  1. スーパーユーザーになるか、同等の役割を引き受けます。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. /etc/cron.d/cron.deny ファイルを編集し、ユーザー名を 1 行に 1 つずつ追加します。crontab コマンドの使用を拒否するユーザーを入れます。


    daemon
    bin
    smtp
    nuucp
    listen
    nobody
    noaccess
    username1
    username2
    username3
    .
    .
    .
  3. /etc/cron.d/cron.deny ファイルに新しいエントリが含まれているか確認します。


    # cat /etc/cron.d/cron.deny
    daemon
    bin
    nuucp
    listen
    nobody
    noaccess

Procedurecrontab コマンドの使用を特定のユーザーに限定する方法

  1. スーパーユーザーになるか、同等の役割を引き受けます。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. /etc/cron.d/cron.allow ファイルを作成します。

  3. root ユーザー名を cron.allow ファイルに追加します。

    このファイルに root を追加しないと、スーパーユーザーの crontab コマンドの使用が拒否されます。

  4. ユーザー名を 1 行に 1 つずつ追加します。

    crontab コマンドの使用を許可するユーザーを入れます。


    root
    username1
    username2
    username3
    .
    .
    .
    

例 8–6 crontab コマンドの使用を特定のユーザーに限定する

次は、ユーザー jonestemp、および visitorcrontab コマンドを使用させない cron.deny ファイルの例です。


$ cat /etc/cron.d/cron.deny
daemon
bin
smtp
nuucp
listen
nobody
noaccess
jones
temp
visitor

次は、cron.allow ファイルの例です。ユーザー rootjoneslp および smith だけが、crontab コマンドを使用できます。


$ cat /etc/cron.d/cron.allow
root
jones
lp
smith

crontab コマンドの使用制限を確認する方法

特定のユーザーが 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 ファイルに含まれていることを意味します。