Как отключить или изменить требования к паролю pam?

9

Я использую Fedora 19. По умолчанию он настроен с помощью pam, чтобы отключить неверные пароли, такие как «пароль». Это хорошо. Попытки изменить это значение по умолчанию приводят в бешенство. Это окно для тестирования внутренних вещей, не подключенных к интернету, ни к какой машине. Плохие пароли облегчают процесс тестирования. Альтернативно, как, черт возьми, вы вообще меняете требования к паролю ??

системы аутентификации

man pam_cracklibесть несколько отличных примеров установки различных требований к паролю. Так что я открываю /etc/pam.d/system-auth, где вы видите строки, такие как:

#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
password    requisite     pam_pwquality.so try_first_pass retry=3 authtok_type=
password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok
password    required      pam_deny.so

* Headdesk *. По моему опыту, подобные предупреждения означают, что ваши изменения стираются каждый раз, когда менеджер пакетов запускается и / или случайно.

AuthConfig

Итак ... authconfigэто следующий шаг. Я ищу все файлы с именем "authconfig". /etc/sysconfig/authconfigвыглядит многообещающе И нет предупреждения наверху о разрушении моих правок по прихоти. Я нахожу эту строку USEPWQUALITY=yesи меняю ее. Теперь я бегу:

# authconfig --test
<snip>
pam_pwquality is enabled (try_first_pass retry=3 authtok_type=)
<snip>

WTF. Итак, давайте прочитаем man authconfigнемного ближе. Ой! Похоже, этот файл не читается authconfig, он изменился . Итак .... как вы настраиваете authconfig? В руководстве предлагается system-config-authentication, который я устанавливаю, и нет ничего похожего на флажок для отключения pam_pwquality. Следующее предложение из руководства - параметры командной строки. Большой! Я люблю инструменты командной строки. Только ни один из задокументированных параметров командной строки не отключает pam_pwquality.

pwquality.conf

Благодаря ответ Ааронова, я узнал , что пару лет назад фетровой шляпой решил сделать /etc/security/pwquality.conf на место к требованиям к качеству пароля конфигурационными. К сожалению, как указано в файле и в man 5 pwquality.conf, там (1) нет способа отключить проверку словаря и (2) не может установить допустимую длину пароля ниже шести.

djeikyb
источник
Если он внутренний, почему Pam установлен или даже включен?
Ramhound
1
@ Ramhound, потому что fedora кишит Пэм. yum remove pamудаляет, насколько я могу судить, за время, необходимое для прокрутки всех зависимых пакетов, все . Включая yum и systemd. Кроме того, отключение pam похоже на кувалду, когда я думаю, что я просто хочу использовать наждачную бумагу.
djikyb

Ответы:

4

После беглого взгляда на исходный код в /usr/sbin/authconfigи /usr/share/authconfig/authinfo.py:

  • Страница man неполная, полный список опций, принятых скриптом, находится в authconfig --help
  • Все может быть переопределено в командной строке (даже /etc/security/pwquality.confнастройки, такие как минимальная длина пароля), кроме самого pwquality. ИМХО, это ошибка и о ней нужно сообщить.
  • Из authinfo.pyстроки 2489 и 2156:

    def read(self):
      self.readSysconfig()
      ...
      self.readPAM(ref)
      ...

    Сначала readSysconfigчитает /etc/sysconfig/authconfig; тогда то, что вы помещаете туда, перезаписывается тем, readPAMчто есть в /etc/pam.d/*(особенно password_auth*и system_auth*):

      if module.startswith("pam_cracklib") or module.startswith("pam_pwquality"):
         self.setParam("enablePWQuality", True, ref)

TL; DR : для опций, которые не переопределяются (или не могут быть), настройки берутся из текущей конфигурации, включая файлы, помеченные как автоматически сгенерированные . Чтобы заставить это работать, отредактируйте /etc/sysconfig/authconfig и удалите строки, показанныеgrep -E pwq\|crack /etc/pam.d/*


Редактировать : есть вторая ошибка, из-за которой приведенный выше совет все еще не работает: строка 2248:

    # Special handling for pam_pwquality and pam_passwdqc: there can be
    # only one.
    if self.enablePWQuality and self.enablePasswdQC:
            self.setParam("enablePasswdQC", False, ref)
    if not self.enablePWQuality and not self.enablePasswdQC:
            self.setParam("enablePWQuality", True, ref)

Вам нужно выбрать одно из двух внедрений контроля качества, иначе один будет выбран именно для вас! В сочетании с первой ошибкой это делает невозможным отключение.

eddygeek
источник
Спустя 2 года на fedora 26 alpha ситуация остается прежней
eddygeek
2

Вы можете взять на себя ручной контроль над вашим system-authфайлом. Создайте новый файл (вы можете начать с копирования system-auth-ac) и измените system-authсимволическую ссылку, чтобы она указывала на новый файл.

Это делает вашу ответственность за обновление этой части вашей конфигурации PAM, так как authconfig больше не будет касаться символической ссылки или файла, на который она указывает. Однако authconfig все равно обновит system-auth-acфайл, поэтому вы можете продолжать использовать его в качестве справочного материала, если вам это необходимо. С некоторой сообразительностью вы можете даже сделать includeэто в своей локальной копии, но как это сделать, выходит за рамки этого вопроса.

Вы также должны проверить другие символические ссылки, такие как password-auth. Возможно, вам придется дать им такое же лечение.


Из authconfig(8)справочной страницы под Files:

/etc/pam.d/system-auth
    Common PAM configuration for system services which include it using
    the include directive. It is created as symlink and not relinked if
    it points to another file.

/etc/pam.d/system-auth-ac
    Contains the actual PAM configuration for system services and is the
    default target of the /etc/pam.d/system-auth symlink. If a local
    configuration of PAM is created (and symlinked from system-auth
    file) this file can be included there. 

Так что, если system-authэто файл, то authconfig изменяет его для ссылки на system-auth-ac. Но если system-authэто символическая ссылка, то authconfig оставляет ее в покое.

Jander
источник
1

Это выглядит быть настраиваемым через /etc/security/pwquality.conf

Источник: https://fedoraproject.org/wiki/Features/PasswordQualityChecking

Аарон Окано
источник
Спасибо, я этого еще не видел. К сожалению, pwquality.confне поддерживается отключение проверок словаря или отключение проверок длины пароля.
djeikyb
Может быть, предложение в этом посте будет работать? serverfault.com/questions/444258/…
Аарон Окано
т.е. удалите модуль из system-auth, а также установите USEPWQUALITY = no и запустите authconfig --update.
Аарон Окано
К сожалению (как уже упоминалось в вопросе), запуск authconfig --updateallсбрасывает файлы. Я полностью озадачен этим ответом, поскольку он прямо противоречит поведению, которое я наблюдаю.
djikyb
Я также должен отметить, что установка USEPWQUALITY=noи / или USECRACKLIB=noне решает мою проблему, даже до запуска authconfig.
djikyb
1

Вы все еще можете изменить из командной строки. Вы получите предупреждение, но оно позволит вам установить слишком короткий пароль, а также пароль, который не соответствует правилам сложности.

user280281
источник
Это абсолютно не то поведение, которое я испытываю в Fedora 19.
djeikyb
@djeikyb запускает passwd <username>команду как root (Либо с корневым терминалом, sudo passwd <username>либо после него su -.
Ник
@Nick Это не отключает и не изменяет требования пароля Пэм.
djeikyb
@djeikyb Это не меняет требование, но оно обходит его. При запуске passwdот имени пользователя root он будет игнорировать политики паролей. Если вам просто нужно установить его один раз и забыть, то это сработает. Если вы пытаетесь установить его так, чтобы каждый пользователь мог свободно менять свои пароли, то вам нужно другое решение.
Ник
@ Ник, я вижу. Да, root может использовать, passwdне будучи fd с pam. Мало что имеет отношение к актуальному вопросу, но это делает утверждение в этом «ответе» верным.
djeikyb
0

Я только что нашел этот вопрос на основе соответствующего поиска, и я думаю, что у меня есть ответ для вас.

Fedora создает символические ссылки на созданные файлы authconfig. то есть. system-authссылки на system-auth-ac. Если вы создадите system-authсвой собственный файл, то теоретически любые будущие изменения auth-configбудут обновлены, system-auth-acно ваши измененные файлы останутся без изменений.

Это на самом деле довольно элегантно, но я обнаружил это, только задаваясь вопросом, что *-acделали файлы.

циклон
источник
Это не работает При следующем запуске authconfig(например, authconfig --updateall) ваш файл будет удален и приведена символическая ссылка на него -ac.
Что
@TheDoctorЧто это так? Теперь мне тоже не имеет смысла, почему они так поступили бы, если бы не было возможности сохранения локальных изменений с легким откатом к управляемой конфигурации. Ну что ж.
Циклон,
Да, меня это тоже смущает ... документация не говорит об этом, а в исходном коде даже есть длинный комментарий, объясняющий, как они пытаются быть всем для всех ... очень раздражает.
Что