Как изменить / отключить проверку сложности пароля при смене пароля?
Я знаю, что это "плохая" идея, я знаю, что она небезопасна, я знаю. Я искал в сети ответ, и все, что я видел, было нытье, что это не хорошо. Но мне нравится использовать Linux, потому что он позволяет мне создавать системы, которые я хочу и хотел бы использовать. Конец вступления.
Я пытаюсь сменить пароль:
ruslan:~% passwd
Changing password for ruslan.
(current) UNIX password:
Enter new UNIX password:
Retype new UNIX password:
You must choose a longer password
Если я попробую sudo passwd ruslan
затем я могу установить любой пароль, который мне нужен, поэтому мне не нужны проверки сложности пароля для passwd в моей системе.
После поиска в Google я обнаружил, что должен быть модуль PAM 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
и я могу установить любой пароль, который я хочу.
Я решил оставить этот пост для людей, которым тоже может понадобиться это решение. Извините и спасибо.
7 ответов
Хорошо, я отвечу на мой вопрос:)
Я нашел это 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.
Если это один раз, используя команду passwd от имени пользователя root, вы можете установить простой пароль для пользователя, просто введя желаемое значение.
Откройте файл конфигурации общего пароля для редактирования
sudo 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
это должно сделать это...
Для меня на Ubuntu 21.04 в
/etc/pam.d/common-password
файл:
- Закомментируйте эту строку, т.к. pwquality — это аналог pam_cracklib для ограничения паролей
password requisite pam_pwquality.so retry=3
Изменить следующую строку с
password [success=2 default=ignore] pam_unix.so obscure use_authtok try_first_pass sha512
к
password [success=2 default=ignore] pam_unix.so minlen=1 sha512
в
/etc/pam.d/common-password
изменить эту строку:
password requisite pam_pwquality.so retry=3
к
password requisite pam_pwquality.so dictcheck=0 retry=3
означает установить dictcheck=0, он будет игнорировать проверку словаря
Я попробовал ВСЕ методы на машине со странной и очень строгой установкой, используя устойчивый к манипуляциям PAM.
На этой машине ни один из вышеперечисленных приемов не помог сменить пароль локальной учетной записи (без домена windows) на какое-то новое значение. Правила PAM всегда срабатывали, даже при использовании sudo passwd
Изменения в файле /etc/pam.d/common-password привели к тому, что passwd перестал работать из-за «ошибки манипулирования».
Мое решение состояло в том, чтобы установить пароль на другой машине, на которой у меня также есть root-доступ, а затем скопировать/вставить хешированное значение из /etc/shadow с этой машины на другую, просто используя sudo vi /etc/shadow . Строгий PAM не блокировал это, и это работает. (да, я знаю, что он также копирует соль)
для Ubuntu 22.04 ЛТС
в /etc/pam.d/common-password измените эту строку:
реквизиты пароля pam_pwquality.so retry=3
к
реквизиты пароля pam_pwquality.so retry=3 minlen=6