Файл /etc/login.defs#
login.defs - это конфигурационный файл, определяющий конфигурацию набора теневых паролей для конкретного сайта.
Представляет собой читаемый текстовый файл, каждая строка которого описывает один параметр конфигурации и состоит из имени и значения, разделенных пробелом. Строки комментариев (начинаются с #) и пустые игнорируются.
Значения параметров могут быть четырех типов:
строки – состоят из любых символов, доступных для печати;
логические значения – либо
yes, либоno;числа – могут быть либо десятичными, либо восьмеричными, либо шестнадцатеричными;
длинные числа – аналогично числам.
Параметры управляют поведением инструментов из компонента shadow-utils (подсистема управления учетными записями и файлами теневых паролей). Ни одно из этих средств не использует механизм PAM, а утилиты, использующие PAM должны быть настроены иным образом - в соответствующих конфигурационных файлах. Единственными значениями, влияющими на модули PAM, являются ENCRYPT_METHOD и SHA_CRYPT_MAX_ROUNDS для модуля pam_unix, FAIL_DELAY для pam_faildelay и UMASK для pam_umask (дополнительную информацию см. в «Файл /etc/pam.d/system-auth»).
Параметры конфигурации:
BCRYPT_MIN_ROUNDS (number),BCRYPT_MAX_ROUNDS (number)- если дляENCRYPT_METHODустановлено значениеBCRYPT, то данный параметр определяет количество раундовBCRYPT, используемых алгоритмом шифрования по умолчанию (когда количество раундов не указано в командной строке). Значения должны находиться в диапазоне 4-31. Если задано только одно из значенийBCRYPT_MIN_ROUNDSилиBCRYPT_MAX_ROUNDS, то оно и будет использоваться. ЕслиBCRYPT_MIN_ROUNDS>BCRYPT_MAX_ROUNDS, то будет использоваться наибольшее значение. Влияет только на генерацию групповых паролей.CHFN_RESTRICT (string)- определяет, какие значения в полеgecosфайла/etc/passwdмогут быть изменены пользователями с помощьюchfn(см. справочникman chfn). Это может быть любая комбинация буквf,r,w,hдля полного имени, номера комнаты, рабочего и домашнего телефонов соответственно. Для обеспечения обратной совместимости,yesэквивалентноrwhиnoэквивалентноfrwh. Если параметр не указан, то только пользователь с правамиrootможет вносить какие-либо изменения.CREATE_HOME (boolean)- указание, следует ли создавать домашний каталог по умолчанию для новых пользователей. Данный параметр не применяется к системным пользователям и может быть переопределен в командной строке.DEFAULT_HOME (boolean)- указание, разрешен ли вход в систему, если нет подключения к домашнему каталогу. Значение по умолчанию -no. Если установлено значениеyes, то при невозможности создания каталога в домашнем расположении пользователь войдет в корневой каталог (/).ENCRYPT_METHOD (string)- определяет системный алгоритм шифрования паролей по умолчанию. Может принимать одно из значений:BCRYPT,DES(по умолчанию),MD5,SHA256,SHA512,YESCRYPT. Переопределяет переменнуюMD5_CRYPT_ENAB. Влияет только на генерацию групповых паролей. Генерация пользовательских паролей выполняется PAM и зависит от конфигурации PAM.ENV_PATH (string)- если параметр установлен, то он будет использоваться для определения переменной окруженияPATHпри входе обычного пользователя в систему. Значение представляет собой список путей, разделенных двоеточием (например,/bin:/usr/bin), перед которым может стоятьPATH=. Значение по умолчанию -PATH=/bin:/usr/bin.ENV_SUPATH (string)- если параметр установлен, то он будет использоваться для определения переменной окруженияPATHпри входе суперпользователя в систему. Значение представляет собой список путей, разделенных двоеточием (например,/sbin:/bin:/usr/sbin:/usr/bin), перед которым может стоятьPATH=. Значение по умолчанию -PATH=/sbin:/bin:/usr/sbin:/usr/bin.ERASECHAR (number)- cимволERASEв терминале (010= backspace,0177= DEL).FAIL_DELAY (number)- задержка в секундах до разрешения повторной попытки после сбоя входа в систему.FAKE_SHELL (string)- если задано, тоloginзапустит указанную оболочку вместо оболочки пользователя, указанной в/etc/passwd.FORCE_SHADOW- принудительное использованиеshadow, даже если файлыshadow passwdиshadow groupотсутствуют.GID_MAX (number),GID_MIN (number)- диапазон идентификаторов групп, используемых для создания групп с помощьюuseradd,groupaddилиnewusers. Значение по умолчанию дляGID_MINравно1000, дляGID_MAX-60000.HMAC_CRYPTO_ALGO- выбор алгоритма HMAC. Используется в модулеpam_timestampдля вычисления кода аутентификации сообщения с хеш-кодом.HOME_MODE (number)- режим для новых домашних каталогов. Если не указан, то для создания режима используетсяUMASK.HUSHLOGIN_FILE (string)- если данный параметр определен, то он может блокировать все обычные сообщения во время последовательности входа в систему. Если указан полный путь, то будет включен скрытый режим при наличии в файле имени пользователя или оболочки. Если полный путь не указан, то будет включен скрытый режим при существовании файла в домашнем каталоге пользователя.KILLCHAR (number)- cимволKILLв терминале (025= CTRL /U).LASTLOG_UID_MAX (number)- самый высокий идентификационный номер пользователя, для которого должны обновляться записиlastlog. Отсутствие данного параметра означает, что ограничения по идентификатору пользователя для записейlastlogотсутствуют.useraddиnewusersиспользуют его для установки режима создаваемой ими домашнем каталоге.LOG_OK_LOGINS (boolean)- включение протоколирования успешных входов в систему.LOG_UNKFAIL_ENAB (boolean)- включение отображения неизвестных имен пользователей при сбое входа в систему.LOGIN_RETRIES (number)- максимальное количество попыток входа в систему в случае неверного пароля.LOGIN_TIMEOUT (number)- максимальное время входа в систему в секундах.MAIL_DIR (string)- каталог почтового спула (места хранения почтовых сообщений до их отправки в ящики пользователей). Данный параметр необходим для управления почтовым ящиком при изменении/удалении соответствующей учетной записи пользователя. Если не указано, то используется значение по умолчанию во время компиляции. ПараметрCREATE_MAIL_SPOOLв/etc/default/useraddопределяет, следует ли создавать почтовый каталог.MAIL_FILE (string)- определяет расположение файлов спула электронной почты пользователей относительно их домашнего каталога.MAX_MEMBERS_PER_GROUP (number)- максимальное количество участников на запись в группе. При достижении максимального значения в/etc/groupзапускается новая запись. Значение по умолчанию равно0, что означает отсутствие ограничений на количество участников в группе. Функция разделения группы позволяет ограничить длину строк в файле групп, чтобы размер строк для групп NIS не превышал 1024 символа.MD5_CRYPT_ENAB (boolean)- указание, должны ли шифроваться пароли с использованием алгоритма на основе MD5. Если установлено значениеyes, то новые пароли будут зашифрованы с использованием алгоритма на основе MD5, совместимого с алгоритмом, используемым в последних версиях FreeBSD. Он поддерживает пароли неограниченной длины и более длинные строкиsalt. Установите значениеno, если необходимо скопировать зашифрованные пароли в другие системы, не работающие с новым алгоритмом. Значение по умолчанию -no. Данная переменная заменяетсяENCRYPT_METHODили любым параметром командной строки, используемым для настройки алгоритма шифрования. Влияет только на генерацию групповых паролей.NONEXISTENT (string)- отображается в/etc/passwdдля учетной записи в случае, если системная учетная запись не имеет существующего домашнего каталога. В результатеpwckне будет выдавать ложное предупреждение для соответствующей учетной записи.PASS_MAX_DAYS (number)- максимальное количество дней, в течение которых может использоваться пароль. Если пароль старше этого значения, то будет произведена принудительная смена пароля. Если не указано, то будет принято значение-1(отключение ограничения).PASS_MIN_DAYS (number)- минимальное количество дней, допустимое между сменами пароля. Любая попытка смены пароля раньше указанного срока будет отклонена. Если не указано, будет принято значение0(отключение ограничения).PASS_WARN_AGE (number)- предупреждение о количестве дней, выдаваемое до истечения срока действия пароля. Значение0означает, что предупреждение выдается в день истечения срока действия,-1или не указано - предупреждение не выдается.Примечание
PASS_MAX_DAYS,PASS_MIN_DAYSиPASS_WARN_AGEиспользуются только при создании учетной записи. Изменения этих настроек не повлияют на существующие учетные записи.SHA_CRYPT_MIN_ROUNDS (number),SHA_CRYPT_MAX_ROUNDS (number)- в случае если дляENCRYPT_METHODустановлено значениеSHA256илиSHA512, то данный параметр определяет количество раундовSHA, используемых алгоритмом шифрования по умолчанию (когда количество раундов не указано в командной строке). Если не указано, тоlibcвыберет количество раундов по умолчанию (5000). Значения должны находиться в диапазоне1000-999,999,99999. Если установлено только одно из значенийSHA_CRYPT_MIN_ROUNDSилиSHA_CRYPT_MAX_ROUNDS, то оно и будет использоваться. ЕслиSHA_CRYPT_MIN_ROUNDS>SHA_CRYPT_MAX_ROUNDS, то будет использоваться наибольшее значение. Влияет только на генерацию групповых паролей.SULOG_FILE (string)- если задано, то все действияsuрегистрируются в указанном файле.SU_NAME (string)- указание имени команды, которое будет отображаться при запускеsu -. Например, если задано значениеsu, тоpsбудет отображать-su. Если не определено, тоpsбудет отображать имя фактически запускаемой оболочки, например,-sh.SUB_GID_MIN (number),SUB_GID_MAX (number),SUB_GID_COUNT (number)- если существует/etc/subuid, тоuseraddиnewusers(если у пользователя нет идентификаторов подчиненных групп) выделяютSUB_GID_COUNTнеиспользуемые идентификаторы групп из диапазона отSUB_GID_MINдоSUB_GID_MAXдля каждого нового пользователя. Значения по умолчанию дляSUB_GID_MIN,SUB_GID_MAX,SUB_GID_COUNTравны соответственно100000,600100000и65536.SUB_UID_MIN (number),SUB_UID_MAX (number),SUB_UID_COUNT (number)- если существует/etc/subuid, тоuseraddиnewusers(если у пользователя нет подчиненных идентификаторов пользователей) выделяютSUB_UID_COUNTнеиспользуемые идентификаторы пользователей из диапазона отSUB_UID_MINдоSUB_UID_MAXдля каждого нового пользователя. Значения по умолчанию дляSUB_UID_MIN,SUB_UID_MAX,SUB_UID_COUNTравны соответственно100000,600100000и65536.SYS_GID_MAX (number),SYS_GID_MIN (number)- диапазон идентификаторов групп, используемых для создания системных групп с помощьюuseradd,groupaddилиnewusers.SYS_UID_MAX (number),SYS_UID_MIN (number)- диапазон идентификаторов пользователей, используемых для создания системных пользователей с помощьюuseraddилиnewusers.SYSLOG_SG_ENAB (boolean)- включение ведения журналаsyslogактивностиsg.SYSLOG_SU_ENAB (boolean)- включение ведения журналаsyslogактивностиsu- в дополнение к ведению журнала файловsulog.TTYGROUP (string),TTYPERM (string)- разрешения терминала:ttyдля входа будет принадлежать группеTTYGROUP, а разрешения будут установлены наTTYPERM.TTYGROUPможет быть либо именем группы, либо числовым идентификатором группы. ЕслиTTYGROUPне определен, то групповое владение терминалом устанавливается на основную группу пользователя. ЕслиTTYPERMне определен, то разрешения устанавливаются равными0600. Если имеется программа для записи, для которойsetgidприсвоен специальной группе, которой принадлежат терминалы, укажитеTTYGROUPв качестве номера группы, аTTYPERM-0620. В противном случае оставьтеTTYGROUPзакомментированным и присвоьтеTTYPERMзначение622или600.TTYTYPE_FILE (string)- указание файла, сопоставляющего строкуttyпараметру средыTERM. Cтроки имеют формат «vt100 tty01».UID_MAX (number),UID_MIN (number)- диапазон идентификаторов пользователей, используемых для создания постоянных пользователей с помощьюuseraddилиnewusers. Значение по умолчанию дляUID_MINравно1000, дляUID_MAX-60000.UMASK (number)- инициализация маски создания режима файла. Если не указано, маска будет инициализирована значением022.useraddиnewusersиспользуют эту маску для установки режима создаваемого ими домашнего каталога, если не задан параметрHOME_MODE. Также используетсяpam_umaskв качестве значенияumaskпо умолчанию.USERDEL_CMD (string)- если данный параметр определен, то он запускается при удалении пользователя. Удаляет все заданияat/cron/printи т.д., принадлежащие удаляемому пользователю (передается в качестве первого аргумента).USERGROUPS_ENAB (boolean)- если установлено значениеyes, тоuserdelудалит группу пользователя, если в ней больше нет участников, аuseraddсоздаст по умолчанию группу с именем пользователя.YESCRYPT_COST_FACTOR (number)- когда дляENCRYPT_METHODустановлено значениеYESCRYPT, данный параметр определяет коэффициент затрат, используемый алгоритмом шифрования по умолчанию (когда коэффициент затрат не указан в командной строке). Значение должно находиться в диапазоне 1-11. Влияет только на генерацию групповых паролей.
Перекрестные ссылки в таблице ниже показывают соотношение утилит в shadow password suite и используемых ими параметров.
Утилиты |
Параметры |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Пример записей#
FAIL_DELAY 3
LOG_UNKFAIL_ENAB no
SYSLOG_SG_ENAB yes
MAIL_DIR /var/spool/mail
MAIL_FILE .mail
HUSHLOGIN_FILE /etc/hushlogins
ENV_SUPATH PATH=/sbin:/bin:/usr/sbin:/usr/bin
ENV_PATH PATH=/bin:/usr/bin
TTYGROUP tty
TTYPERM 0600
UMASK 022
HOME_MODE 0700
PASS_MAX_DAYS 99999
PASS_MIN_DAYS 0
PASS_WARN_AGE 7
UID_MIN 1000
UID_MAX 60000
SYS_UID_MIN 201
SYS_UID_MAX 999
SUB_UID_MIN 100000
SUB_UID_MAX 600100000
SUB_UID_COUNT 65536
GID_MIN 1000
GID_MAX 60000
SYS_GID_MIN 201
SYS_GID_MAX 999
SUB_GID_MIN 100000
SUB_GID_MAX 600100000
SUB_GID_COUNT 65536
LOGIN_RETRIES 3
LOGIN_TIMEOUT 60
CHFN_RESTRICT rwh
ENCRYPT_METHOD SHA512
SHA_CRYPT_MAX_ROUNDS 5000
DEFAULT_HOME yes
USERDEL_CMD /usr/sbin/userdel_local
USERGROUPS_ENAB yes
MAX_MEMBERS_PER_GROUP 0
CREATE_HOME yes
FORCE_SHADOW yes
HMAC_CRYPTO_ALGO SHA512