アカウントへのログイン(GUI、シェル、またはSSHのいずれかを介して)に使用するパスワードとは異なるパスワードを使用して、ユーザーをSudoステータスに昇格させたいのですが。これは可能ですか?
EDIT: rootパスワードを設定すると、rootとしてログインできるため、これは適切な方法ではありません。システム全体のrootパスワードではなく、ユーザー固有のSudoパスワードを使用したいと思います。
man sudoersから:
rootpw If set, Sudo will Prompt for the root password instead of the
password of the invoking user. This flag is off by default.
runaspw If set, Sudo will Prompt for the password of the user defined
by the runas_default option (defaults to root) instead of the
password of the invoking user. This flag is off by default.
または、sshを介したパスワードベースのログインを完全に禁止することもできます。リモートログインにはパスフレーズで暗号化されたキーが必要です。その後、Sudoのパスワードを自由に使用できます。関連するオプションは
mansshd_configから
PasswordAuthentication
Specifies whether password authentication is allowed. The default
is “yes”.
代わりにsudoersmanでこれを探していますか?
targetpw If set, Sudo will Prompt for the password of the user
specified by the -u option (defaults to root) instead of the
password of the invoking user.
SSH経由のパスワードログオンを無効にし、推測が難しいパスワードを設定できる公開鍵ログオンを許可するのはどうですか。次に、ローカルパスワードを短くして、Sudoで使用できます。
それ以外に、別の(または追加の)モジュールを使用するように/etc/pam.d/Sudo
を構成する必要があります。一見すると、pam_dialpass
で必要なものが許可される場合があります。
一方のLDAP構成を構成し、もう一方のローカルパスワードを構成することもできます。それはすべて、あなたがどれだけの変更を加えることができ、喜んで行うか、どのモジュールが利用可能かなどに依存します。
ソリューション1:newgrp
ユースケースに対処する簡単な方法は、:NOPASSWD
をグループおよびグループpasswdと組み合わせて使用することです。
Sudoersに行を追加します。
%rudo ALL=(ALL:ALL) NOPASSWD:ALL
Passwdで保護されたグループを作成します。
groupadd rudo
gpasswd rudo # Enter passwd
これで、非特権ユーザーとしてログインするときに(rudo
グループにまだ入っていない場合)、rudo
グループにログインすると、パスワードの入力を求められます。
login user
newgrp rudo
これで、グループにログインしたままである限り、Sudo
をパスワードなしで実行できます。
解決策2:runaspw
これを行うためのより良い、おそらくより安全な方法は、runaspw
を使用します。 runaspw
はrunas_default
オプションに関連付けられているため、そのオプションも追加する必要があります。
デフォルトの%Sudo
グループエントリがすでにあると仮定します。
%Sudo ALL=(ALL:ALL) ALL
次の行をsudoersファイルに追加します。
Defaults:%Sudo runas_default=Sudo
Defaults:%Sudo runaspw
次に、パスワードを使用して新しいSudo
ユーザーを追加します。
useradd Sudo -d /nonexistent -s /usr/sbin/nologin -MNr
passwd Sudo
これで、SudoグループユーザーはSudoユーザーのpasswdの入力を求められますが、SudoグループのユーザーのみがSudoを実行できます(グループ内またはグループpasswdを使用するすべてのユーザーがSudoを実行できる上記のグループソリューションとは異なります)。
マイナーな問題は、デフォルトのrunasユーザーがSudo
になったことです。そのため、rootとしてSudoを使用するには、rootを明示的に指定する必要があります。
Sudo -u root <cmd>
ただし、エイリアス(alias Sudo='Sudo -u root'
)または間接Sudoコマンドを定義するのは簡単です。