Wie ändere/deaktiviere ich den Kennwortkomplexitätstest beim Ändern des Kennworts?

Wie ändere/deaktiviere ich den Kennwortkomplexitätstest beim Ändern des Kennworts?

Ich weiß, dass es eine „schlechte“ Idee ist, ich weiß, dass es nicht sicher ist, ich weiß es. Ich habe im Internet nach einer Antwort gesucht und alles, was ich gefunden habe, war Gejammer, dass es nicht gut ist. Aber ich benutze Linux gern, weil ich damit das System erstellen kann, das ich will und gerne benutze. Ende der Einleitung.

Ich versuche das Passwort zu ändern:

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

Wenn ich es versuche sudo passwd user, kann ich jedes beliebige Kennwort festlegen, sodass ich auf meinem System keine Kennwortkomplexitätsprüfungen für Passwd benötige.

Nach dem Googeln habe ich herausgefunden, dass esPAMModul pam_cracklib, das Passwörter auf Komplexität prüft und konfiguriert werden kann. Aber meine PAM-Passworteinstellungen enthalten pam_cracklib nicht:

% 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 

Ich vermute, dass pam_unix diesen Test durchführt … Ups … Leute, in dem Moment, als ich diesen Satz fertig geschrieben hatte, hatte ich eine Erleuchtung und tippte ihn man pam_unixins Terminal ein, wo ich die benötigten Optionen für das pam_unix-Modul fand.

Ich habe einfach die Option obscure entfernt und minlen=1 hinzugefügt und jetzt bin ich zufrieden. Jetzt habe ich also diese Zeile drin /etc/pam.d/common-password:

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

und ich kann jedes beliebige Passwort festlegen.

Ich habe beschlossen, diesen Beitrag für Leute aufzubewahren, die diese Lösung möglicherweise auch benötigen.

Antwort1

Ok, ich werde meine Frage beantworten :)

Ich habe festgestellt, dass das pam_unixModul eine Prüfung der Kennwortkomplexität durchführt und konfiguriert werden kann.

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.

Lösung:
Ändern Sie die Zeile im pam_unixModul in der /etc/pam.d/common-passwordDatei wie folgt:

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

Sie können ein beliebiges Passwort mit einer Mindestlänge von 1 festlegen.

Antwort2

Wenn es sich um ein einmaliges Ereignis handelt, können Sie mit dem Befehl passwd als Root ein einfaches Kennwort für einen Benutzer festlegen, indem Sie einfach den gewünschten Wert eingeben und das Kennwort dann bei den Eingabeaufforderungen zweimal eingeben.

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:~$ 

Antwort3

Öffnen Sie die common-passwordKonfigurationsdatei zum Bearbeiten:

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

Kommentieren Sie diese Zeile, indem Sie das #Zeichen wie gezeigt am Anfang hinzufügen:

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

Kommentieren Sie auch diese Zeile, da Sie sonst bei der Kennworteinstellung eine Mischung aus Groß- und Kleinbuchstaben eingeben müssen:

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

Fügen Sie nun einfach diese Zeile in dieselbe Datei ein:

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

das sollte es tun ...

Antwort4

Ich habe ALLE Methoden auf einer Maschine mit einer seltsamen und sehr strengen Installation unter Verwendung eines manipulationsresistenten PAM ausprobiert.

Auf dieser Maschine half keiner der oben genannten Tricks, das Passwort eines lokalen Kontos (ohne Windows-Domäne) auf einen neuen Wert zu ändern. Die PAM-Regeln griffen immer ein, selbst bei Verwendung von sudo passwd

Änderungen an /etc/pam.d/common-password führten dazu, dass Passwd aufgrund eines „Manipulationsfehlers“ insgesamt fehlschlug.

Meine Lösung bestand darin, das Passwort auf einem anderen Computer festzulegen, auf dem ich auch Root-Zugriff habe, und dann den Hashwert aus /etc/shadow von diesem Computer auf den anderen zu kopieren/einzufügen, indem ich einfach sudo vi /etc/shadow verwendet habe. Das strikte PAM hat das nicht blockiert und es funktioniert. (ja, ich weiß, dass es auch das Salt kopiert)

verwandte Informationen