ここでの要件は、root 以外のユーザーが crontab エントリを編集することを許可してはならないということです。この投稿では、そのための手順について説明しています。これを実現するには 3 つの方法があります:
1. 非 root ユーザーのシステムへの ssh を無効にします。これにより、非 root ユーザーのシェル ログイン自体が無効になります。
2. ユーザー名をファイル /etc/cron.deny に追加します 、行ごとに各ユーザー (ファイルにリストされているユーザーのみに影響する典型的な方法)。
# cat /etc/cron.deny oracle
その他の簡単な回避策は、/etc/cron.deny ファイルを空にして、root ユーザー名のみをファイル /etc/cron.allow に追加することです。 .これにより、root ユーザーのみが cron エントリを変更/追加できるようになります。
注意 :ファイル /etc/cron.allow と /etc/cron.deny の間に競合がないことを確認してください。 crontab が cron.UNIX / Linux へのユーザー アクセスを検証する方法の詳細については、以下の投稿を参照してください。 crontab が cron.allow および cron.deny ファイルに基づいてアクセスを検証する方法crontab エントリを作成して、拒否されたユーザーを確認します。以下に示すようなエラーが表示されるはずです。
# crontab -e You (oracle) are not allowed to use this program (crontab) See crontab(1) for more information
3. もう 1 つの積極的なアプローチは、crontab コマンドの実行権限を削除することです。これは、cron エントリを変更/追加するすべての非 root ユーザー機能に影響を与えます。
ファイル /usr/bin/crontab のデフォルトのアクセス許可:
# ls -lrt /usr/bin/crontab -rwsr-xr-x 1 root root 51784 Jul 22 2016 /usr/bin/crontab
実行権限を削除した後:
# chmod 700 /usr/bin/crontab # ls -lrt /usr/bin/crontab -rwx----- 1 root root 51784 Jul 22 2016 /usr/bin/crontab注:ファイル許可を変更する前に、ファイル /usr/bin/crontab のバックアップがあることを確認してください。また、パッケージのアップグレードまたは再インストール後、この変更はデフォルトに戻されることに注意してください。
変更する前に、/usr/bin/crontab ファイルのデフォルトの権限に注意してください:
# stat /usr/bin/crontab File: `/usr/bin/crontab' Size: 51784 Blocks: 104 IO Block: 4096 regular file Device: fd00h/64768d Inode: 1318020 Links: 1 Access: (4755/-rwsr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2017-09-13 09:39:27.192418684 +0530 Modify: 2016-07-22 12:50:39.000000000 +0530 Change: 2017-09-08 18:11:33.668586770 +0530
crontab エントリを作成して、拒否されたユーザーを確認します:
# crontab -e bash: /usr/bin/crontab: Permission denied
CentOS / RHEL :root 以外のユーザーに対して ssh を無効にする方法 (root ユーザーに対してのみ ssh を許可する)
UNIX / Linux :root 相当のユーザー (UID 0 の非 root ユーザー) を削除する方法