前回、前々回からの続きです。
今回は、crontabコマンドの実行ユーザを制限したいと思います。
- ■やりたいこと
- ■やること(概要)
- ■手順
- ■/etc/cron.denyと/etc/cron.allowについて
- ■/etc/cron.denyと/etc/cron.allowが両方存在する場合の動作
本記事は以下の本を参考にしております。
■やりたいこと
test2ユーザ(=一般ユーザ)によるcrontabコマンドの実行ができないようにしたい。
■やること(概要)
/etc/cron.denyを利用します。当該ファイルにユーザ名を記載することで、ここに記載されたユーザはcrontabコマンドが実行できません。
■手順
1.test2ユーザでログインし、作業前の状態を確認します。
問題なくcrontabコマンドが実行できています。
2.rootユーザで以下コマンドを実行し、test2ユーザを記載し、保存します。
3.test2ユーザでログインし、手順1同様のコマンドを実行します。
期待通り、test2ユーザによるcrontabコマンドの実行が制限されました。
■/etc/cron.denyと/etc/cron.allowについて
先ほどの/etc/cron.denyはいわゆるブラックリスト形式です。
ホワイトリスト形式は/etc/cron.allowを利用します。
RHEL8では、cron.denyはデフォルトで存在しますが、cron.allowは存在しません。
必要であれば手動でcron.allow(権限644、root:root)を作成します。
■/etc/cron.denyと/etc/cron.allowが両方存在する場合の動作
基本的には、どちらか片方で制御したほうが管理しやすいです。
仮に両ファイルが存在し、かつ同じユーザが記述されていた場合の動作について記載致します。
ここでは、test2が両ファイルに記載されている場合を例にします。
結果ですが、ホワイトリストが優先されました。
ホワイトリストが優先されるということは、
他の一般ユーザではcrontabコマンドが実行できなくなります。
試しにtestuserユーザでcrontabを実行してみたところ、実行NGとなりました。
これらを踏まえると冒頭の通り、どちらか片方で制御したほうが管理しやすい気がします。
以上です。
本記事は以下の本を参考にしております。