権限のない通常のユーザーとしてSudo
を実行すると、rootパスワードではなくパスワードが要求されます。これは多くの場合便利ですが、rootとしてコマンドを実行するために必要な情報の量が減ります。では、起動ユーザーのパスワードの代わりにSudo
にrootパスワードを要求させるにはどうすればよいですか?
/etc/sudoers
の行でそれが行われることはわかっていますが、manページのBNF文法を適切に解析して、何を書くべきかを正確に理解することはできません。
わかりました、ここでもチェックマークを設定できます。
/etc/sudoers
、次の行を追加します:
Defaults rootpw
rootpwフラグをオンにして、Sudoにrootパスワードを要求させます。
rootpw
フラグをオンにする必要があります。
ターゲットのパスワードを必要とする一般的な構成(必要なものではありません):
Defaults targetpw
ALL ALL=(ALL) ALL
2行目は次のように読み上げます。「すべてのホストのすべてのユーザーが、すべてのコマンドを実行すると、(ALL)ユーザーになりすますことができます。」そしてその Defaults targetpw
は、偽装するユーザーのパスワードを知っている必要があることを意味します。
この単純な構成を単純に次のように変更します。
Defaults rootpw
別のユーザーとしてコマンドを実行する権限を持つユーザーまたはグループを離れることはありません。
1つの有効な可能性は次のとおりです。
Defaults rootpw
myuser ALL=(ALL) ALL
平易な英語では、myuser
は、rootパスワードがわかっている限り、すべてのホストで任意のユーザーとしてすべてのコマンドを実行できるようになりました。
別の有効な可能性は次のとおりです。
Defaults rootpw
%sudousers ALL=(ALL) ALL
sudousers
グループのメンバーは、ルートパスワードがわかっている限り、すべてのホスト上ですべてのユーザーとしてすべてのコマンドを実行できます。 myuser
がSudoコマンドを実行できるようにするには、そのセカンダリグループにsudousers
を追加する必要があります。
su
usermod -a -G sudousers myuser
exit
編集:例外とスコープに関する明確な例:
Defaults rootpw
myuser ALL=(ALL) ALL
%sudousers ALL=(ALL) ALL
Defaults:%sudousers !rootpw
これには、ルートパスワードを知るためにmyuser
が必要ですが、sudousers
グループのメンバーは自分のパスワードを使用する必要があります。 myuser
がsudousers
のメンバーである場合、この動作はそれらのrootpw
もオーバーライドすることに注意してください(最後に一致するエントリが以前のエントリをオーバーライドします)。
私はこの質問が古いことを知っていますが、これはこのユースケースで見つけた最も簡潔な質問です(これはマイナーなパーセンテージで、真ですが、それでも正しいシナリオでは合法で役に立ちます)。
さまざまなソースからすべてのステップをまとめた後-この質問に対する複数の回答を含め、これらのステップはUbuntu-Gnome 16.04 LTSで機能します。
Sudo passwd
Sudo visudo
Defaults rootpw
簡単なメモ-グラフィカルログインからのログインにrootユーザーが使用できないようにしたかったので、除外する方法を検討しました。どうやら、rootユーザーはデフォルトで除外されており、Gnomeグラフィカルログインからのログインには使用できません。これは非常に良いことです。
Sudoをオフにしてsu -c
。