
それが「悪い」アイデアであることはわかっていますし、安全ではないこともわかっています。ネットで答えを探しましたが、見つけたのはそれが良くないという愚痴ばかりでした。しかし、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 はこれをブロックせず、うまくいきました。(はい、ソルトもコピーされることは知っています)