この投稿では、sudo アクセス権を持つユーザーがコマンドによってスーパーユーザー権限を取得できないようにすることで、システム セキュリティを強化する手順の概要を説明しています。
$ sudo su
sudo コマンドを使用すると、システム管理者は、ユーザーまたはユーザーのグループが、元のユーザー パスワードしか知らない別の権限 (スーパーユーザーの「root」権限など) で特定のコマンドライン ツールを実行できるようになります。
sudo コマンドが実行されると、構成ファイル /etc/sudoers で一致するコマンドを見つけようとします。 または /etc/sudoers.d/;一致が見つかった場合、ユーザーにはコマンドを実行する権限が付与されます。そうでない場合は、イベントがログに記録され、コマンドは拒否されます。
sudo コマンドは、コマンド ラインからの引数を /etc/sudoers または /etc/sudoers.d/ ファイル内の各エントリと照合することによって機能します。最初に見つかった一致が結果を決定します。各ルールは、/etc/sudoers ファイルで順番にテストされます。ルールは、コマンドの先頭と照合されます。ルールがコマンドよりも短い場合は、コマンドの先頭にある一致部分のみがチェックされます。コマンドの残りの部分はチェックされません。 /etc/sudoers ルールの順序は重要です。長いルールは常に短いバージョンの前に置いてください。
1. root アカウントでサーバーにログインします。
2. /etc/sudoers をバックアップします
# cp -p /etc/sudoers /etc/sudoers.ORIG
3. /etc/sudoers 設定ファイルを編集します。
# visudo -f /etc/sudoers
差出人:
##Allow orarom user to run any command (enabled for patching from oracle platnum support) orarom ALL=(ALL) ALL
宛先:
##Limit the orarom user to run any command (enabled for patching from oracle platnum support), except for sudo su to root orarom ALL = ALL, !/bin/su
4. ファイルを保存します。
5. sudo で他のユーザー アカウントにも同じことを行ってください。
確認
ユーザーへの sudo アクセスを無効にしているかどうかを確認しましょう。
$ sudo su - [sudo] password for orarom: Sorry, user orarom is not allowed to execute '/bin/su -' as root on testvm01.