table of contents
PASSWD(5) | Руководство программиста Linux | 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) вы можете задать пароль.
Каждая строка файла состоит из семи полей, разделённых двоеточием и описывает одного пользователя:
Поля:
- имя
- Имя пользователя в системе. Оно не должно содержать букв в верхнем регистре.
- пароль
- Может содержать шифрованный пароль пользователя, звёздочку (*) или букву '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).
СМОТРИТЕ ТАКЖЕ¶
login(1), passwd(1), su(1), getpwent(3), getpwnam(3), crypt(3), group(5), shadow(5)
2012-05-03 | Linux |