PASSWD(5)

ИМЯ
passwd - файл паролей

ОПИСАНИЕ
В текстовом файле /etc/passwd содержится список учётных записей пользователей в системе. Файл должен быть доступен для чтения всем пользователям (многие утилиты, такие как ls(1), используют его, чтобы преобразовывать идентификаторы пользователей в их имена), но доступ на запись должен предоставляться только суперпользователю.

В старые добрые времена не существовало большой проблемы, связанной с доступностью этого файла на чтение для всех. Любой мог прочитать зашифрованные пароли, но мощности компьютеров не хватало для подбора грамотно выбранных паролей, а кроме того, наивно предполагалось, что сеть используется дружественным сообществом пользователей. В наши дни, многие пользователи стали использовать механизм теневых паролей, где файл /etc/passwd содержит 'x' в поле пароля, а зашифрованные пароли хранятся в файле /etc/shadow, который доступен на чтение только суперпользователю.

Если значение шифрованного пароля, в /etc/passwd или /etc/shadow, равно пустой строке, то вход будет разрешён без запроса пароля. Заметим, что данной свойство может быть специально отключено в приложениях или может настраиваться (например, с помощью аргументов «nullok» или «nonull»модуля pam_unix.so).

Если значение шифрованного пароля в /etc/passwd равно «*NP*» (без кавычек), то теневая запись запрашивается с сервера NIS+.

Вне зависимости от того, применяется ли механизм теневых паролей или нет, многие системные администраторы ставят звёздочку (*) в поле зашифрованного пароля, чтобы быть уверенными, что данный пользователь не пройдёт аутентификацию, используя какой-либо пароль (но смотри раздел ЗАМЕЧАНИЯ далее).

Если вы создаёте новую учётную запись, сперва в поле пароля помещается звёздочка (*), а затем с помощью команды passwd(1) вы можете задать пароль.

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

    имя:пароль:UID:GID:GECOS:каталог:оболочка

Поля:

имя Имя пользователя в системе. Оно не должно содержать букв в верхнем регистре.

пароль
    Может содержать шифрованный пароль пользователя, звёздочку (*) или букву 'x' (про 'x' см. в pwconv(8)).

UID Привилегированная учётная запись root (суперпользователь) имеет идентификатор пользователя равный 0.

GID Числовой идентификатор первичной группы (GID) пользователя. Дополнительные группы пользователя могут быть заданы в файле групп системы; смотрите group(5).

GECOS
    Данное поле является необязательным и используется только для информационных целей. Обычно, оно содержит полное имя пользователя. Некоторые программы (например, finger(1)) показывают значение этого поля.

    GECOS — это аббревиатура от General Electric Comprehensive Operating System, которая была переименована в GCOS, когда подразделение больших систем компании GE было продано компании Honeywell. Денис Ритчи писал: «Иногда мы направляем вывод печати или пачку заданий на GCOS машину. Поле gcos в файле паролей было местом, где хранилась информация для $IDENTcard. Не элегантно.»

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

оболочка
    Это программа, которая запускается после входа в систему (если это поле пустое, то используется /bin/sh). Если в поле указан несуществующий исполняемый файл, то пользователь не сможет войти в систему с помощью login(1). Значение данного поля используется для настройки переменной окружения SHELL.

ФАЙЛЫ
/etc/passwd

ЗАМЕЧАНИЯ
Если вы хотите создать группу пользователя, то такая группа должна существовать в файле /etc/group, иначе группа не будет существовать.

Если вместо зашифрованного пароля установлена звёздочка (*), то пользователь не сможет войти в систему, используя команду login(1), но сможет войти в систему, используя rlogin(1), запустить существующие процессы и инициировать новые, используя rsh(1), cron(8), at(1) или почтовые фильтры и т.д. Попытка заблокировать учётную запись простым изменением поля shell, даст тот же результат и в дополнении разрешит использование su(1).

СМОТРИТЕ ТАКЖЕ
chfn(1), chsh(1), login(1), passwd(1), su(1), crypt(3), getpwent(3), getpwnam(3), group(5), shadow(5)