web-dev-qa-db-ja.com

Linuxsudoersがコマンド `su`で機能しない

グループSudoのユーザーのコマンドsustaffを無効にしたい。

だから私はこれを/etc/sudoersに入れました:

%staff ALL=ALL, !/usr/bin/Sudo,!/usr/bin/su

しかし、グループSudoのユーザーに対しては、suのみが機能し、staffが引き続き機能することがわかりました。

私もこれを試しました:

%staff ALL=ALL, !/usr/bin/Sudo
%staff ALL=ALL, !/usr/bin/su

それでも、Sudoでは機能しますが、suでは機能しません。

どうすればこれを修正できますか?

1
Joshua Lee

suSudo...ではありません。これらは2つの別個のツールであり、動作が大きく異なります。

suは、/etc/sudoersとは無関係であるため、その影響を受けません。

  • su-rootパスワードが必要であり、ユーザーがユーザー名rootを使用してログインしようとしたかのように "as" rootを認証できるようにします。
  • Sudo-使用者が自分のIDを証明し(たとえば、自分のパスワードを再入力することによって)、特定のタスクのroot権限を引き受けることができます。

"disable" su、(おそらくお勧めできません)を実行したい場合は、実行フラグを削除するか、システムから削除する必要があります。

suが問題になるのはなぜですか? rootアカウントにパスワードはありますか? (わかりませんが、そうでない場合は、suが認証を要求しない可能性があります)。


わかりやすくするために、/etc/sudoersSudoで実行されるコマンドの動作に影響を与えます。次に例を示します。

  • Sudo ${cmd}
  • Sudo dd ...
  • Sudo su-%staff ALL=ALL, !/usr/bin/suでブロックしているもの
  • Sudo sudo ...-%staff ALL=ALL, !/usr/bin/Sudoでブロックしているもの
4
Attie

suの使用を実際に「禁止」することはできません。ただし、これを使用してroot権限を取得するには、rootのパスワードが必要です。

逆に、Sudoを使用すると、独自の資格情報を使用するだけでルートアクセスを取得できます。したがって、これは、それぞれ信頼できるユーザー(ここでは、グループstaffのユーザー)のみに制限したいものです。

2
rolando