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.allow
SELinux / AppArmor監査ログを確認することをお勧めします。