ユーザーが(GUI、シェル、またはSSHを介して)アカウントにログインするときに使用するパスワードとは異なるパスワードを使用して、ユーザーをsudoステータスに昇格させたい。これは可能ですか?
編集: rootパスワードを設定するとrootとしてログインできるため、これは適切な方法ではありません。システム全体のrootパスワードではなく、ユーザー固有のsudoパスワードを使用します。
ユーザーが(GUI、シェル、またはSSHを介して)アカウントにログインするときに使用するパスワードとは異なるパスワードを使用して、ユーザーをsudoステータスに昇格させたい。これは可能ですか?
編集: rootパスワードを設定するとrootとしてログインできるため、これは適切な方法ではありません。システム全体のrootパスワードではなく、ユーザー固有のsudoパスワードを使用します。
回答:
男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のパスワードを自由に使用できます。関連するオプションは
男sshd_configから
PasswordAuthentication
Specifies whether password authentication is allowed. The default
is “yes”.
代わりにこれをsudoers manで探していますか?
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コマンドを定義するのは簡単です。