Як вимкнути або змінити вимоги пароля пам?


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

* головний убір *. На мій досвід, такі попередження означають, що зміни змінюються щоразу, коли менеджер пакунків запускається та / або випадковим чином.

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) не можна встановити дозволену довжину пароля нижче шести.


Якщо це внутрішнє, чому встановлено або навіть увімкнено функцію Pam?
Рамхаунд

1
@Ramhound, оскільки Федора заражена пам. yum remove pamвидаляє, наскільки я можу визначити за часом, який потрібен для прокрутки всіх залежних пакетів, і все . У тому числі yum і systemd. Крім того, відключення пам’ятки відчуває себе кувалдою, коли я думаю, що я просто хочу використовувати наждачний папір.
djeikyb

Відповіді:


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)

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


Через 2 роки на Fedora 26 альфа ситуація залишається колишньою
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 залишає це в спокої.


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скидає файли. Я ретельно здивований цією відповіддю, оскільки це прямо суперечить поведінці, яку я спостерігаю.
djeikyb

Я також повинен зазначити, що встановлення USEPWQUALITY=noта / або USECRACKLIB=noне вирішує мою проблему, навіть перед запуском authconfig.
djeikyb

1

Ви все ще можете змінити з командного рядка. Ви отримуєте попередження, але воно дозволить встановити занадто короткий пароль, а також той, який не відповідає правилам складності.


Це абсолютно не поведінка, яку я відчуваю з Fedora 19.
djeikyb

@djeikyb запустити passwd <username>команду як root (або з sudo passwd <username>або після su -кореневого терміналу.
Nick

@Nick Це не вимикає та не змінює вимоги пароля пам’яті.
djeikyb

@djeikyb Це вимога не змінює, але обходить її. Коли ви запускаєте passwdяк root, він ігнорує політику щодо паролів. Якщо вам просто потрібно встановити його один раз і забути, тоді це спрацює. Якщо ви намагаєтесь встановити його так, щоб кожен користувач міг вільно змінювати свої паролі, тоді вам потрібно інше рішення.
Нік

@Nick Я бачу. Так, root може використовуватись passwdбез fd з пам. Мало спільного з власне питанням, але це робить виправдання твердження в цій "відповіді" справжнім.
djeikyb

0

Я щойно знайшов це питання на основі пов’язаного пошуку, і я думаю, що у вас є відповідь для вас.

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

Це насправді досить елегантно, але я виявив це лише коли цікавився, що роблять *-acфайли.


Це не працює. Наступний запуск authconfig(напр. authconfig --updateall) Видалить ваш файл і символізує його назад до -acфайлу.
док

@TheDoctorЩо так? Тепер я теж не має сенсу, чому вони зробили б це так, якби не допустити збереження локальних змін з легким запасом керованої конфігурації. Ну добре.
Циклон

Так, це мене теж бентежить ... документація не говорить про це, а у вихідному коді є навіть довгий коментар, в якому пояснюється, як вони намагаються бути всім для всіх ... дуже дратує.
док
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.