
我知道這是一個“壞”主意,我知道它不安全,我知道。我在網路上搜尋答案,但我看到的只是抱怨這不好。但我喜歡使用 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 模組所需的選項。
我剛剛刪除了晦澀的選項並添加了 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 命令,您可以透過簡單地輸入所需的值來為使用者設定一個簡單的密碼,然後在提示時輸入密碼兩次。
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 由於「操作錯誤」而完全失敗。
我的解決方案是在另一台我也具有 root 存取權限的電腦上設定密碼,然後只需使用 sudo vi /etc/shadow 將雜湊值從該電腦複製/貼上到另一台電腦。嚴格的 PAM 並沒有阻止這一點,而且它確實有效。 (是的,我知道它也會複製鹽)