Как изменить / отключить проверку сложности пароля при смене пароля?

Я знаю, что это "плохая" идея, я знаю, что она небезопасна, я знаю. Я искал в сети ответ, и все, что я видел, было нытье, что это не хорошо. Но мне нравится использовать 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файл:

  1. Закомментируйте эту строку, т.к. pwquality — это аналог pam_cracklib для ограничения паролей

password requisite pam_pwquality.so retry=3

  1. Изменить следующую строку с

             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

Другие вопросы по тегам