web-dev-qa-db-ja.com

sudoアクセスvsホイールグループ

ここでは少し混乱しています。ユーザーにマシンへのSudoアクセスを許可するように求められたとき。ユーザーをwheelグループに追加するだけです。

# usermod -aG wheel bob

または、ホイールグループがないか、何らかの理由で削除されたとしましょう。

次に、ボブSudoにマシンへのアクセスを許可するにはどうすればよいですか?

# which Sudo

私は結果を得ます:/usr/bin/Sudo

だから私は次の行を行うことができます:

bob     ALL=/usr/bin/Sudo

しかし、その後私はユーザーbobに変更して実行しようとしました

# Sudo iptables -L

そして、それは私にそのエラーメッセージを与えます:

ユーザーbobはrootとして「/ sbin/iptables -L」を実行できません

グループホイールが存在しない場合に、Sudoがマシンにアクセスできるようにする方法がわかりません。そして私の知識によると

bob       ALL=ALL    ALL

基本的にボブはルートのように同じ力を持っていますが、これは良くありません。

私のもう1つの質問は、システム上のすべてのユーザーが最後のコマンドを実行できるようにする方法です。グループを作成してからすべてのユーザーをこのグループに追加する必要がありますか、それとも別の方法がありますか?

7
alkabary

WheelグループのメンバーシップがユーザーにSudoを介した完全なrootアクセスを許可する場合、通常は/etc/sudoersファイルで次のように構成されます。

%wheel    ALL=(ALL) ALL

意味:「wheelホスト上のグループALLのメンバーは、ALLユーザーアカウントにSudoを実行してALLコマンドを実行できます。」したがって、これは「不良」行とまったく同じです。

bob      ALL=(ALL) ALL

ユーザー(またはグループ)に特定の他のユーザーアカウントへのフルアクセスのみを与えたい場合は、次の方法で行うことができます。

user     ALL=(targetuser) ALL
# or
%group   ALL=(targetuser) ALL

次に、ユーザーは

$ Sudo -u targetuser command

ターゲットユーザーとして個々のコマンドをすばやく実行する、または

$ Sudo -iu targetuser

ターゲットユーザーとしてシェルを取得するには、ターゲットユーザーが直接ログインした場合とまったく同じ環境を使用します。

歴史的な理由により、一部の人々は反射的に使用します

Sudo su - targetuser

第二の目的のため。これには、問題のユーザーに少なくとも `を実行するためのアクセス権を与える必要があります。

su - targetuser 

rootとしてコマンドを入力すると、ユーザーが実際に行ったことをログからつなぎ合わせるのが難しくなります。このコマンドは、Sudo-iオプションがなかったときに役に立ちましたが、このオプションは今から約15年前から存在していると思います。

9
telcoM