パスワードを変更するときにパスワードの複雑さのテストを変更/無効にするにはどうすればよいですか?

パスワードを変更するときにパスワードの複雑さのテストを変更/無効にするにはどうすればよいですか?

それが「悪い」アイデアであることはわかっていますし、安全ではないこともわかっています。ネットで答えを探しましたが、見つけたのはそれが良くないという愚痴ばかりでした。しかし、Linux を使うと、自分が望む、使いたいシステムを作ることができるので、私は Linux を使うのが好きです。紹介はこれで終わりです。

パスワードを変更しようとします:

user:~% passwd
Changing password for user.
(current) UNIX password:
Enter new UNIX password:
Retype new UNIX password:
You must choose a longer password

試してみるとsudo passwd user、任意のパスワードを設定できるので、システム上の passwd のパスワード複雑さチェックは必要ありません。

グーグルで調べたら、パムパスワードの複雑さをテストするモジュール pam_cracklib は設定可能です。しかし、私の PAM パスワード設定には pam_cracklib が含まれていません。

% cat /etc/pam.d/passwd | grep '^[^#]'
@include common-password
% cat /etc/pam.d/common-password | grep '^[^#]'
password    [success=1 default=ignore]  pam_unix.so obscure sha512
password    requisite           pam_deny.so
password    required            pam_permit.so
password    optional    pam_gnome_keyring.so 

pam_unix がこのテストを行っているようです... おっと... 皆さん、この文章を書き終えた瞬間にひらめきを得て、man pam_unixターミナルに入力したところ、pam_unix モジュールに必要なオプションが見つかりました。

私はオプション obscure を削除し、minlen=1 を追加したところで満足しています。これで次の行ができました/etc/pam.d/common-password:

password    [success=1 default=ignore]  pam_unix.so minlen=1 sha512

任意のパスワードを設定できます。

この解決策を必要とする可能性のある人のために、この投稿を残すことにしました。

答え1

わかりました、私の質問に答えます:)

pam_unixモジュールがパスワードの複雑さのチェックを実行し、それを構成できることを発見しました。

man pam_unix:

   minlen=n
       Set a minimum password length of n characters. The default value is
       6. The maximum for DES crypt-based passwords is 8 characters.

   obscure
       Enable some extra checks on password strength. These checks are
       based on the "obscure" checks in the original shadow package. The
       behavior is similar to the pam_cracklib module, but for
       non-dictionary-based checks.

解決:
pam_unixファイル内のモジュール の行を/etc/pam.d/common-password次のように変更します。

password    [success=1 default=ignore]  pam_unix.so minlen=1 sha512

最小文字数 1 の任意のパスワードを設定できます。

答え2

一度だけの場合は、root として passwd コマンドを使用して、必要な値を入力し、プロンプトでパスワードを 2 回入力するだけで、ユーザーに簡単なパスワードを設定できます。

john@workpad:~$ sudo bash
[sudo] password for john: 
root@workpad:/home/john# passwd john
New password: 
Retype new password: 
passwd: password updated successfully
root@workpad:/home/john# exit
exit
john@workpad:~$ 

答え3

common-password編集用に設定ファイルを開きます:

sudo -H gedit /etc/pam.d/common-password

#次のように文字を先頭に追加してこの行をコメント化します。

#password   [success=2 default=ignore]  pam_unix.so obscure use_authtok try_first_pass sha512

この行もコメント化してください。そうしないと、パスワード設定で大文字と小文字の組み合わせを渡すように求められます。

#password   requisite           pam_passwdqc.so enforce=everyone max=18 min=disabled,8,8,1,1 retry=2 similar=deny

次に、同じファイルに次の行を追加します。

password    [success=1 default=ignore]  pam_unix.so minlen=1 sha512

これで大丈夫でしょう...

答え4

私は、操作耐性のある PAM を使用した奇妙で非常に厳密なインストールを備えたマシンですべての方法を試しました。

このマシンでは、上記のトリックのどれも、ローカルアカウント(Windowsドメインなし)のパスワードを新しい値に変更するのに役立ちませんでした。sudo passwdを使用しても、PAMルールは常に有効になりました。

/etc/pam.d/common-password の変更により、「操作エラー」が原因で passwd が完全に失敗しました。

私の解決策は、ルートアクセス権を持つ別のマシンにパスワードを設定し、そのマシンの /etc/shadow からハッシュ値をコピーして、 sudo vi /etc/shadow を使用して別のマシンに貼り付けることでした。厳格な PAM はこれをブロックせず、うまくいきました。(はい、ソルトもコピーされることは知っています)

関連情報