自由気ままに書いちゃおう

好きなことをつらつらと・・・

【RHEL8】crontabコマンドの実行ユーザの制限(cron.denyとcron.allow)

前回、前々回からの続きです。
今回は、crontabコマンドの実行ユーザを制限したいと思います。

www.guri2o1667.work

www.guri2o1667.work

 

■やりたいこと

test2ユーザ(=一般ユーザ)によるcrontabコマンドの実行ができないようにしたい。

■やること(概要)

/etc/cron.denyを利用します。当該ファイルにユーザ名を記載することで、ここに記載されたユーザはcrontabコマンドが実行できません。

■手順

1.test2ユーザでログインし、作業前の状態を確認します。

f:id:guri2o1667:20201109180108p:plain

問題なくcrontabコマンドが実行できています。

2.rootユーザで以下コマンドを実行し、test2ユーザを記載し、保存します。

f:id:guri2o1667:20201109180232p:plain

3.test2ユーザでログインし、手順1同様のコマンドを実行します。

f:id:guri2o1667:20201109180305p:plain

期待通り、test2ユーザによるcrontabコマンドの実行が制限されました。


■/etc/cron.denyと/etc/cron.allowについて

先ほどの/etc/cron.denyはいわゆるブラックリスト形式です。
ホワイトリスト形式は/etc/cron.allowを利用します。
RHEL8では、cron.denyはデフォルトで存在しますが、cron.allowは存在しません。
必要であれば手動でcron.allow(権限644、root:root)を作成します。

f:id:guri2o1667:20201109190322p:plain

 

■/etc/cron.denyと/etc/cron.allowが両方存在する場合の動作

基本的には、どちらか片方で制御したほうが管理しやすいです。
仮に両ファイルが存在し、かつ同じユーザが記述されていた場合の動作について記載致します。
ここでは、test2が両ファイルに記載されている場合を例にします。

f:id:guri2o1667:20201109190522p:plain


結果ですが、ホワイトリストが優先されました。

f:id:guri2o1667:20201109190601p:plain


ホワイトリストが優先されるということは、
他の一般ユーザではcrontabコマンドが実行できなくなります。
試しにtestuserユーザでcrontabを実行してみたところ、実行NGとなりました。

f:id:guri2o1667:20201109190748p:plain


これらを踏まえると冒頭の通り、どちらか片方で制御したほうが管理しやすい気がします。

以上です。