Sudo ユーザーの「su」アクセスを無効にする方法
su コマンドは、別のユーザーおよびグループとしてコマンドを実行できる特別な Linux コマンドです。また、root アカウント (引数なしで実行した場合) または別の指定されたユーザー アカウントに切り替えることもできます。
デフォルトでは、すべてのユーザーが su コマンドにアクセスできます。ただし、システム管理者は、以下で説明するようにsudoers ファイルを使用して、ユーザーまたはユーザーのグループの su アクセスを無効にすることができます。
sudoers ファイルは、ユーザーの sudo 権限を決定する sudo セキュリティ ポリシー プラグインを駆動します。 sudo コマンドを使用すると、ユーザーは別のユーザー (デフォルトでは root ユーザー) のセキュリティ権限でプログラムを実行できます。
別のユーザー アカウントに切り替えるには、図に示すように、ユーザーは現在のログイン セッションから su コマンドを実行できます。この例では、ユーザー aarnk が testuser アカウントに切り替えています。ユーザー aarnk は、testuser アカウントのパスワードを入力するよう求められます。
su testuser
root アカウントに切り替えるには、ユーザーは root パスワードを持っているか、sudo コマンドを呼び出す権限を持っている必要があります。つまり、ユーザーは sudoers ファイルに存在する必要があります。この例では、ユーザー aarnk (sudo ユーザー) が root アカウントに切り替えています。
sudo を呼び出した後、ユーザー aarnk はパスワードの入力を求められます。パスワードが有効であれば、ユーザーには root として対話型シェルへのアクセスが許可されます。
sudo su
Sudo ユーザーの su アクセスを無効にする
sudo ユーザー(たとえば、上記の aaronk ユーザー)の su アクセスを無効にするには、まず、/etc/sudoers にある元の sudoers ファイルをバックアップします。次のように:
sudo cp /etc/sudoers /etc/sudoers.bak
次に、次のコマンドを使用して sudoers ファイルを開きます。 sudoers ファイルを手動で編集することはお勧めできません。常に visudo コマンドを使用してください。
sudo visudo
コマンドエイリアスのセクションで、次のエイリアスを作成します。
Cmnd_Alias DISABLE_SU = /bin/su
次に、ファイルの最後に次の行を追加し、ユーザー名 aarnk を su アクセスを無効にするユーザーに置き換えます。
aaronk ALL=(ALL) NOPASSWD: ALL, !DISABLE_SU
ファイルを保存して閉じます。
次に、セットアップが次のように機能していることをテストして確認します。システムは次のようなエラー メッセージを返します。「申し訳ありませんが、ユーザー aaronk は tecmint で root として '/bin/su' を実行することはできません。 」。
sudo su
Sudo ユーザーのグループの su アクセスを無効にする
sudo ユーザーのグループに対して su アクセスを無効にすることもできます。たとえば、グループ admin 内のすべてのユーザーの su アクセスを無効にするには、次の行を変更します。
%admin ALL=(ALL) ALL
これに:
%admin ALL=(ALL) ALL, !DISABLE_SU
ファイルを保存して閉じます。
ユーザーを admin グループに追加するには、usermod コマンドを実行します (ユーザー名を実際のユーザーに置き換えます)。
sudo usermod -aG admin username
su、sudo、および sudoers の詳細については、マニュアル ページを確認してください。
man su
man sudo
man sudoers