ユーザーxはこのプログラムを使用できません。

ユーザーxはこのプログラムを使用できません。

Ubuntu14.04

サービス(ログインなし)アカウント(named)に対してcrontabを設定したときに表示される動作を理解していませんcurator

rootとしてログインすると、次の結果が表示されます。

# crontab -u curator -l
The user curator cannot use this program (crontab)

ただし、ユーザーアカウントに切り替えると正常に動作します。

# su -s /bin/bash curator
curator@host$ crontab -l
no crontab for curator

/etc/cron.allowシステムに空のファイルがあり、ファイルがありません。/etc/cron.denyによるとman crontab

/etc/cron.allowファイルが存在する場合、このコマンドを使用するにはそのファイルにリストする必要があります(1行に1人のユーザー)。 /etc/cron.allowファイルはありませんが、/etc/cron.denyファイルがある場合、このコマンドを使用するには/etc/cron.denyファイルにリストしないでください。

最初のコマンドを実行したときに発生するエラーを理解していますが、明示的にユーザーcrontabアカウントに切り替えるとコマンドを実行できるのはなぜですか?

ユーザーを追加すると、/etc/cron.allow両方のコマンドが正しく機能しました。

答え1

crontabソースを確認した結果、ユーザーが開けない場合/etc/cron.allow(例:以降chmod 0 /etc/cron.allow)、crontabはユーザーがそのソースを使用できると思うことを発見しました(cron.allow存在しないかのように)。

ただし、ルートはすべてのファイルを読み取ることができるため、crontabチェックコードは期待どおりに機能します。したがって、まず権限を確認し、/etc/cron.allowSELinux / AppArmor監査ログを確認することをお勧めします。

関連情報