Linuxのパスワードポリシーのため、パスワードのリセットは許可されません。

Linuxのパスワードポリシーのため、パスワードのリセットは許可されません。

SSHキーとユーザーadmを使用してサーバーにログインしていますが、ログインするのと同じユーザーのパスワードをリセットする必要があります。ただし、passwdコマンドを入力すると、実際のパスワードを入力するように求められます。そのユーザーについてはよくわかりません。リセットするたびに実際のパスワードを提供する必要があるパスワードポリシーを削除するにはどうすればよいですか?

答え1

設計上、Linuxでは元のパスワードを提供しない限りパスワードを変更することはできません。これは(部分的に)あなた自身とあなたが実行しているプログラムからあなたを保護することです(つまり、あなたが実行しているプログラムは現在のパスワードがわからない限りパスワードを変更することはできません)。

ただし、スーパーユーザーのルートはこれらの日常的な問題の影響を受けません。したがって、直接(またはsu)または間接的に(によって)スーパーユーザーアクセス権がある場合は、そのsudo権限を使用して、現在のパスワードが何であるかを知らずにスーパーユーザーにパスワードをリセットさせることができます。

まっすぐ:

username@host $ su - 
Password: [enter root's password]
root@host # passwd username

間接的な:

username@host $ sudo passwd username
Password: [enter username's password]

現在パスワードがわからないので、直接パスを使用する必要があります。

答え2

通常のユーザーとして実行すると、このpasswdコマンドは変更前に常に現在のパスワードを要求します。これは、コンピュータに物理的にアクセスしている人がアカウントをロックするのを防ぐセキュリティ機能です。

rootとして実行すると(またはsudoなどを使用して)、passwdユーザーが知らないうちにすべてのユーザーのパスワードを変更できます。

それでもsudoが必要な場合、またはrootアカウントにアクセスする必要があるもう1つの方法は、rootアカウントからハッシュされたパスワードを削除することです/etc/shadow。これはパスワードを空のパスワードに効果的に置き換えます。

関連情報