Участник:Petr-akhlamov/Login.defs Manual RU

Материал из ALT Linux Wiki
Stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.


Название

login.defs - содержит конфигурацию подсистемы теневых паролей

Описание

Файл /etc/login.defs содержит настройки подсистемы теневых паролей (shadow password suite). Этот файл является обязательным. Отсутствие данного файла не повлияет на работу системы, но, вероятно, приведёт к выполнению нежелаемых операций.

Файл представляет собой обычный текстовый файл; каждая строка описывает один параметр настройки. Строки состоят из названия параметра и его значения, которые разделяются пробелом. Пустые строки и комментарии игнорируются. Комментарии начинаются со знака фунта «#», который должен быть первым непробельным символом в строке.

Значения параметров могут быть четырёх типов: строки, логические значения, числа и длинные числа. Строки состоят из любых печатных символов. Под логическими значениями подразумеваются yes или no. Неопределённый логический параметр или имеющий значение, отличное от указанных выше, считается как имеющий значение no. Числа (обычные и длинные) можно задавать в десятичной, восьмеричной (перед значением ставится «0») или шестнадцатеричной (перед значением ставится «0x») системах счисления. Максимальные значения параметра обычного и длинного числа зависят от архитектуры компьютера.

Параметры

Возможны следующие параметры настройки:

CHFN_RESTRICT (строка)

Этим параметром определяются части поля gecos в файле /etc/passwd, которые могут изменять обычные пользователи с помощью программы chfn. Строка может содержать любую комбинацию букв f, r, w, h для изменения полного имени пользователя, номера комнаты, рабочего и домашнего телефона, соответственно. Для совместимости значение yes эквивалентно rwh и no эквивалентно frwh. Если ничего не задано, то только суперпользователь может выполнять любые изменения. Наиболее ограничительная настройка достигается снятием SUID бита с файла chfn.


CONSOLE_GROUPS (строка)

Список групп для добавления к набору пользовательских дополнительных групп при входе с консоли (определяемой переменной CONSOLE). По умолчанию не указана.

Используйте осторожно — может дать пользователям постоянный доступ к этим группам, даже если они не входили с консоли.


CREATE_HOME (логический)

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

Эта переменная не влияет на системных пользователей и может быть переопределена из командной строки.


CRYPT_PREFIX (строка), CRYPT_ROUNDS (число)

Метод хеширования паролей и количество итераций, которые будут использоваться для паролей группы, которые можно установить с помощью gpasswd. Пожалуйста, обратитесь к crypt(3) за информацией о поддерживаемых методах хеширования паролей.


DEFAULT_HOME (логический)

Определяет, можно ли войти в систему, если нельзя выполнить cd в домашний каталог. По умолчанию «no».

Если установленно yes, то пользователь будет попадать в корневой каталог (/), если невозможно выполнить cd в его домашний каталог.


ENCRYPT_METHOD (строка)

Задаёт системный алгоритм шифрования по умолчанию для шифрования паролей (используется, если алгоритм не указан в командной строке).

Возможны следующие значения: DES (по умолчанию), MD5, SHA256, SHA512.

Замечание: этот параметр переопределяет переменную MD5_CRYPT_ENAB.

Замечание: действует только при генерации паролей к группам. Генерация пользовательских паролей выполняется PAM и там же настраивается. Рекомендуется устанавливать значение этой переменной согласно настройкам PAM.


ENV_HZ (строка)

Если установлен данный параметр, то он будет использоваться для определения переменной окружения HZ при входе пользователя в систему. Значение должно начинаться с HZ=. Обычное значение для Linux — HZ=100.

Переменная окружения HZ устанавливается только когда пользователь (суперпользователь) входит в систему с помощью sulogin.


ENV_PATH (строка)

Если установлен данный параметр, он будет использоваться для определения переменной среды PATH при входе в систему обычного пользователя. Его значение представляет собой список путей, разделенных двоеточиями (например, /bin:/usr/bin), которому может предшествовать PATH=. Значение по умолчанию — PATH=/usr/bin.


ENV_SUPATH (строка)

Если установлен данный параметр, он будет использоваться для определения переменной среды PATH при входе в систему суперпользователя. Значение представляет собой список путей, разделенных двоеточиями (например, /usr/sbin:/usr/bin), которому может предшествовать PATH=. Значение по умолчанию — PATH=/usr/sbin:/usr/bin.


ERASECHAR (число)

Символ ERASE у терминала (010 = backspace, 0177 = DEL).

Значение может начинаться с «0» при указании значения в восьмеричной системе счисления или «0x» при указании значения в шестнадцатеричной системе счисления.


FAIL_DELAY (число)

Задержка в секундах перед повторной попыткой после неудачного входа.


FAKE_SHELL (строка)

Если установлен данный параметр, то программа login запустит указанную оболочку вместо пользовательской оболочки заданной в /etc/passwd.


GID_MAX (число), GID_MIN (число)

Диапазон идентификаторов групп, используемый в программах useradd, groupadd или newusers для создания обычных групп.

Значение по умолчанию для GID_MIN (соотв. GID_MAX) равно 1000 (соотв. 60000).


GROUPNAME_MAX (число)

Максимальное число символов в названии группы. Это значение не может превышать 32. Если значение не указано, будет установленно значение по-умолчанию - 32 символа.


HUSHLOGIN_FILE (строка)

Если установлен данный параметр, то этот файл может заблокировать все обычные переговоры (chatter) при входе. Если указан полный путь к файлу, то будет включён сокращённый (hushed) режим, если в этом файле указано имя пользователя или оболочка. Если указан не полный путь, то будет включён сокращённый (hushed) режим, если файл находится в домашнем каталоге пользователя.


KILLCHAR (число)

Символ KILL у терминала (025 = CTRL/U).

Значение может начинаться с «0» при указании значения в восьмеричной системе счисления или «0x» при указании значения в шестнадцатеричной системе счисления.


LOG_OK_LOGINS (логический)

Включить протоколирование успешных входов.


LOG_UNKFAIL_ENAB (логический)

Включить показ неизвестных имён пользователей при записи неудачных попыток входа.

Замечание: протоколирование неизвестных имён пользователя может привести к проблемам с безопасностью, если пользователь введёт свой пароль вместо своего имени.


LOGIN_RETRIES (число)

Максимальное количество попыток входа при вводе неверного пароля.

Наиболее вероятно это значение будет переопределено PAM, так как по умолчанию в модуле pam_unix определено 3 попытки. Однако, это значение является резервом, если вы используете модуль аутентификации, который не учитывает PAM_MAXTRIES.


LOGIN_TIMEOUT (число)

Максимальное время в секундах, отведённое на вход.


MAIL_DIR (строка)

Почтовый каталог. Данный параметр нужен для управления почтовым ящиком при изменении или удалении учётной записи пользователя. Если параметр не задан, то используется значение указанное при сборке.


MAIL_FILE (строка)

Определяет расположение почтовых файлов пользователя относительно домашнего каталога.

Переменные MAIL_DIR и MAIL_FILE используются командами useradd, usermod и userdel для создания, перемещения или удаления почты пользователя.


MAX_MEMBERS_PER_GROUP (число)

Максимальное количество членов в записи о группе. При достижения максимума заводится новая запись группы (строка) в /etc/group (с тем же именем, паролем и тем же GID).

Значение по умолчанию равно 0, означающее, что ограничения на количество членов в группе нет.

Данная возможность (разделение группы) позволяет ограничить длину строк в файле групп. Это полезно для ограничения длины строк групп NIS в 1024 символа.

Если вам нужно такое ограничение, укажите значение 25.

Замечание: разделение групп поддерживается не всеми инструментами (даже в наборе инструментов Shadow). Вы не должны использовать эту переменную, если вам действительно это ненужно.


MD5_CRYPT_ENAB (логический)

Обозначает, что пароль должен быть зашифрован по алгоритму на основе MD5. Если значение равно yes, то новые пароли будут зашифрованы по алгоритму на основе MD5, совместимому с используемым в новых версиях FreeBSD. Он поддерживает пароли неограниченной длины и имеет более длинную строку соли. Установите в no, если вам нужно копировать шифрованные пароли в другие системы, которые не поддерживают новый алгоритм. По умолчанию no.

Эта переменная переопределяется переменной ENCRYPT_METHOD или любым параметром командной строки, который задаёт алгоритм шифрования.

Эта переменная устарела; используйте ENCRYPT_METHOD.

Замечание: действует только при генерации паролей к группам. Генерация пользовательских паролей выполняется PAM и там же настраивается. Рекомендуется устанавливать значение этой переменной согласно настройкам PAM.


PASS_MAX_DAYS (число)

Максимальное число дней использования пароля. Если пароль старее этого числа, то будет запущена процедура смены пароля. Если значение не задано, то предполагается значение -1 (то есть возможность ограничения не используется).


PASS_MIN_DAYS (число)

Максимальное число дней между изменениями пароля. Любая смена пароля ранее заданного срока выполнена не будет. Если значение не задано, то предполагается значение -1 (то есть возможность ограничения не используется).


PASS_WARN_AGE (число)

Число дней за которое начнёт выдаваться предупреждение об устаревании пароля. Нулевое значение означает, что предупреждение выдаётся в день устаревания, при отрицательном значении предупреждение выдаваться не будет. Если значение не задано, выдача предупреждения отключается.

Параметры PASS_MAX_DAYS, PASS_MIN_DAYS и PASS_WARN_AGE используются только при создании учётной записи. Любые изменения этих параметров не влияют на уже существующие учётные записи.


REGEXP_NAME (строка)

Регулярное выражение, которому должны соответствовать имена пользователей/групп. Если оно не определено или пусто, будет выполнена традиционная проверка. Обратите внимание, что цифры в названиях по-прежнему не допускаются независимо от определенного регулярного выражения. Имена, отличающиеся только регистром букв, также запрещены.


SAFE_PWDB_FIELDS (логический)

Если указано положительное значение, то символы, отличные от ASCII, в файлах базы данных паролей не допускаются.


SULOG_FILE (строка)

Если определена, то любая активность su будет протоколироваться в этот файл.


SU_NAME (строка)

Если определена, то выводится имя команды когда работает «su -». Например, если значение равно «su», то «ps» покажет команду как «-su». Если не определена, то «ps» покажет имя запускаемой оболочки например как «-sh».


SUB_GID_MIN (number), SUB_GID_MAX (number), SUB_GID_COUNT (number)

Команды useradd и newusers назначают для SUB_GID_COUNT неиспользуемые ID групп из диапазона от SUB_GID_MIN до SUB_GID_MAX для каждого нового пользователя.

Значения по умолчанию для SUB_GID_MAN, SUB_GID_MIN, SUB_GID_COUNT составляют соответственно 100000, 600100000 и 10000.


SUB_UID_MIN (number), SUB_UID_MAX (number), SUB_UID_COUNT (number)

Команды useradd и newusers назначают для SUB_UID_COUNT неиспользуемые ID групп из диапазона от SUB_UID_MIN до SUB_UID_MAX для каждого нового пользователя.

Значения по умолчанию для SUB_UID_MAN, SUB_UID_MIN, SUB_UID_COUNT составляют соответственно 100000, 600100000 и 10000.


SYS_GID_MAX (число), SYS_GID_MIN (число)

Диапазон идентификаторов групп, используемый в программах useradd, groupadd или newusers для создания системных групп.

Значение по умолчанию для SYS_GID_MIN (соотв. SYS_GID_MAX) равно 101 (соотв. GID_MIN-1).


SYS_UID_MAX (число), SYS_UID_MIN (число)

Диапазон идентификаторов пользователей, используемый в программах useradd или newusers для создания системных пользователей.

Значение по умолчанию для SYS_UID_MIN (соотв. SYS_UID_MAX) равно 101 (соотв. UID_MIN-1).


SYSLOG_SG_ENAB (логический)

Включить протоколирование «syslog» действий sg.


SYSLOG_SU_ENAB (логический)

Включить протоколирование «syslog» действий su — дополнительно к протоколированию в файле sulog.


TCB_AUTH_GROUP (логический)

Если установлено yes, то недавно созданные файлы tcb shadow будут группой, принадлежащей группе auth.


TCB_SYMLINKS (логический)

Если установлено "да", расположение пользовательского каталога tcb, который будет создан, не будет автоматически установлено на /etc/tcb/user, но будет рассчитываться в зависимости от UID пользователя в соответствии со следующим алгоритмом:

   if ( UID is less than 1000) {
      use /etc/tcb/user
   } else if ( UID is less than 1000000) {
      kilos = UID / 1000
      use /etc/tcb/:kilos/user
      make symlink /etc/tcb/user to the above directory
   } else {
      megas = UID / 1000000
      kilos = ( UID / megas * 1000000 ) / 1000
      use /etc/tcb/:megas/:kilos/user
      make symlink /etc/tcb/user to the above directory
   }


TTYGROUP (строка), TTYPERM (строка)

Права терминала: tty входа будет принадлежать группе TTYGROUP, а права будут назначены в соответствии с TTYPERM.

По умолчанию, терминалом владеет первичная группа пользователя, а права устанавливаются в 0600.

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

Если ваша программа write имеет «setgid» со специальной группой, которой принадлежат терминалы, то присвойте TTYGROUP номер этой группы, а TTYPERM значение 0620. В противном случае оставьте TTYGROUP закомментированной и назначьте TTYPERM значение 622 или 600.


TTYTYPE_FILE (строка)

Если определена, то в ней указывается имя файла, в котором описано соответствие между линией tty и параметром окружения TERM. Каждая строка файла имеет формат вида «vt100 tty01».


UID_MAX (число), UID_MIN (число)

Диапазон идентификаторов пользователей, используемый в программах useradd или newusers для создания обычных пользователей.

Значение по умолчанию для UID_MIN (соотв. UID_MAX) равно 1000 (соотв. 60000).


UMASK (число)

Задаёт начальное значение маски доступа для создаваемых файлов. Если не указано, то маска устанавливается в 022.

Команды useradd и newusers используют эту маску для установки прав доступа к домашнему каталогу, который они создают.

Она также используется командой pam_umask как значение umask по умолчанию.


USERDEL_CMD (строка)

Определяет программу, которая будет запущена при удалении пользователя. Она должна удалять любые задания at/cron/печати удаляемого пользователя (передаётся в качестве первого аргумента).

Возвращаемый сценарием код завершения не учитывается.

Вот простой сценарий, который удаляет задания печати, cron и at:

   #! /bin/sh

   # проверить все необходимые параметры
   if [ $# != 1 ]; then
echo "Использование: $0 имя_пользователя"
exit 1
   fi

   # удалить задания cron
   crontab -r -u $1

   # удалить задания at
   # Заметим, что это удалит все задания с указанным UID,
   # даже если он используется для другой учётной записи.
   AT_SPOOL_DIR=/var/spool/cron/atjobs
   find $AT_SPOOL_DIR -name "[^.]*" -type f -user $1 -delete \;

   # удалить задания печати
   lprm $1

   # всё
   exit 0


USERGROUPS_ENAB (логический)

Если значение равно yes, то userdel удаляет пользовательскую группу, если в ней нет больше членов, а useradd по умолчанию создаёт группу с именем пользователя.

Перекрестные ссылки

Следующие перекрёстные ссылки отражают связь между программами и их параметрам из набора для работы с теневыми паролями.


chage

USE_TCB


chfn

CHFN_RESTRICT SAFE_PWDB_FIELDS


chgpasswd

ENCRYPT_METHOD MAX_MEMBERS_PER_GROUP MD5_CRYPT_ENAB


chpasswd
gpasswd

ENCRYPT_METHOD MAX_MEMBERS_PER_GROUP MD5_CRYPT_ENAB CRYPT_PREFIX CRYPT_ROUNDS


groupadd

GID_MAX GID_MIN MAX_MEMBERS_PER_GROUP REGEXP_NAME SYS_GID_MAX SYS_GID_MIN GROUPNAME_MAX


groupdel

MAX_MEMBERS_PER_GROUP


groupmems

MAX_MEMBERS_PER_GROUP


groupmod

MAX_MEMBERS_PER_GROUP GROUPNAME_MAX REGEXP_NAME


grpck

MAX_MEMBERS_PER_GROUP


grpconv

MAX_MEMBERS_PER_GROUP


grpunconv

MAX_MEMBERS_PER_GROUP


login

CONSOLE_GROUPS DEFAULT_HOME ERASECHAR FAIL_DELAY FAKE_SHELL HUSHLOGIN_FILE KILLCHAR LOGIN_RETRIES LOGIN_TIMEOUT LOG_OK_LOGINS LOG_UNKFAIL_ENAB TTYGROUP TTYPERM TTYTYPE_FILE USERGROUPS_ENAB


newgrp / sg

SYSLOG_SG_ENAB


newusers

ENCRYPT_METHOD GID_MAX GID_MIN MAX_MEMBERS_PER_GROUP MD5_CRYPT_ENAB PASS_MAX_DAYS PASS_MIN_DAYS PASS_WARN_AGE REGEXP_NAME SUB_GID_COUNT SUB_GID_MAX SUB_GID_MIN SUB_UID_COUNT SUB_UID_MAX SUB_UID_MIN SYS_GID_MAX SYS_GID_MIN SYS_UID_MAX SYS_UID_MIN UID_MAX UID_MIN UMASK


pwck

PASS_MAX_DAYS PASS_MIN_DAYS PASS_WARN_AGE TCB_AUTH_GROUP TCB_SYMLINKS USE_TCB


pwconv

PASS_MAX_DAYS PASS_MIN_DAYS PASS_WARN_AGE USE_TCB


pwunconv

USE_TCB


su

CONSOLE_GROUPS DEFAULT_HOME ENV_PATH ENV_SUPATH SULOG_FILE SU_NAME SYSLOG_SU_ENAB


sulogin

ENV_HZ


useradd

CREATE_HOME GID_MAX GID_MIN MAIL_DIR MAX_MEMBERS_PER_GROUP PASS_MAX_DAYS PASS_MIN_DAYS PASS_WARN_AGE REGEXP_NAME SAFE_PWDB_FIELDS SUB_GID_COUNT SUB_GID_MAX SUB_GID_MIN SUB_UID_COUNT SUB_UID_MAX SUB_UID_MIN SYS_GID_MAX SYS_GID_MIN SYS_UID_MAX SYS_UID_MIN UID_MAX UID_MIN UMASK USERNAME_MAX GROUPNAME_MAX TCB_AUTH_GROUP TCB_SYMLINK USE_TCB


userdel

MAIL_DIR MAIL_FILE MAX_MEMBERS_PER_GROUP USERDEL_CMD USERGROUPS_ENAB TCB_SYMLINKS USE_TCB


usermod

MAIL_DIR MAIL_FILE MAX_MEMBERS_PER_GROUP USERNAME_MAX REGEXP_NAME SAFE_PWDB_FIELDS TCB_SYMLINKS USE_TCB


vipw

USE_TCB