# Built: ООО "НАЙС СОФТ ГРУПП" 5024245440 <niceos@ncsgp.ru>
# Лицензия: ООО "НАЙС СОФТ ГРУПП" — все права защищены

# Начало /etc/pam.d/system-password
# Этот файл задает настройки проверки и хэширования паролей в NiceOS через PAM.
# Используется для обеспечения безопасности паролей пользователей.

# Проверка силы новых паролей с помощью pam_pwquality
# Подробности: man pam_pwquality
# authtok_type=UNIX — Указывает тип аутентификации (в данном случае UNIX-пароли)
# retry=1 — Количество попыток ввода нового пароля при несоответствии требованиям
# difok=1 — Минимальное количество символов, отличающихся от старого пароля
# minlen=8 — Минимальная длина пароля в символах
# dcredit=0 — Максимальное количество цифр, засчитываемых как "кредит" в длину пароля
# ucredit=0 — Максимальное количество заглавных букв, засчитываемых как "кредит"
# lcredit=0 — Максимальное количество строчных букв, засчитываемых как "кредит"
# ocredit=0 — Максимальное количество прочих символов, засчитываемых как "кредит"
# minclass=1 — Минимальное количество классов символов (цифры, буквы и т.д.)
# maxrepeat=0 — Максимально допустимое количество повторяющихся символов
# maxsequence=0 — Максимальная длина числовой или алфавитной последовательности
# maxclassrepeat=0 — Максимальное повторение символов одного класса (например, букв)
# gecoscheck=0 — Проверка пароля на совпадение с данными GECOS (включена/выключена)
# dictcheck=1 — Проверка пароля на наличие словарных слов (включена/выключена)
# usercheck=1 — Проверка пароля на наличие имени пользователя (включена/выключена)
# enforcing=1 — Принудительное применение правил даже для root (включена/выключена)
# badwords="" — Список запрещенных слов через пробел (в данном случае пустой)
# dictpath=/usr/lib/cracklib/pw_dict — Путь к словарю для проверки пароля на словарные слова
password required pam_pwquality.so \
    authtok_type=UNIX retry=1 difok=1 minlen=8 dcredit=0 ucredit=0 lcredit=0 ocredit=0 \
    minclass=1 maxrepeat=0 maxsequence=0 maxclassrepeat=0 gecoscheck=0 dictcheck=1 \
    usercheck=1 enforcing=1 badwords="" dictpath=/usr/lib/cracklib/pw_dict

# Хэширование паролей с использованием yescrypt
# Модуль pam_unix.so отвечает за шифрование паролей и работу с теневыми файлами
password required pam_unix.so \
    yescrypt shadow try_first_pass

# Конец /etc/pam.d/system-password