web-dev-qa-db-ja.com

Sudoパスワードとは異なるSSH /ログインパスワード

アカウントへのログイン(GUI、シェル、またはSSHのいずれかを介して)に使用するパスワードとは異なるパスワードを使用して、ユーザーをSudoステータスに昇格させたいのですが。これは可能ですか?

EDIT: rootパスワードを設定すると、rootとしてログインできるため、これは適切な方法ではありません。システム全体のrootパスワードではなく、ユーザー固有のSudoパスワードを使用したいと思います。

9
Richard

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”.
2
Chas. Owens

代わりに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. 
1
johnshen64

SSH経由のパスワードログオンを無効にし、推測が難しいパスワードを設定できる公開鍵ログオンを許可するのはどうですか。次に、ローカルパスワードを短くして、Sudoで使用できます。

それ以外に、別の(または追加の)モジュールを使用するように/etc/pam.d/Sudoを構成する必要があります。一見すると、pam_dialpassで必要なものが許可される場合があります。

一方のLDAP構成を構成し、もう一方のローカルパスワードを構成することもできます。それはすべて、あなたがどれだけの変更を加えることができ、喜んで行うか、どのモジュールが利用可能かなどに依存します。

1
Bram

ソリューション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を使用します。 runaspwrunas_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コマンドを定義するのは簡単です。

1
spinkus