Простой текстовый файл /etc/passwd содержит соответствия имен пользователей идентификаторам ID. Он может выглядеть так (пример 7.2).
Пример 7.2. Перечень пользователей в файле /etc/passwd
root:x:0:0:Superuser:/root:/bin/sh
daemon:*:1:1:daemon:/usr/sbin:/bin/sh
bin:*:2:2:bin:/bin:/bin/sh
sys:*:3:3:sys:/dev:/bin/sh
nobody:*:65534:65534:nobody:/home:/bin/false
juser:x:3119:1000:J. Random User:/home/juser:/bin/bash
beazley:x:143:1000:David Beazley:/home/beazley:/bin/bash
Каждая строка представляет одного пользователя и состоит из семи полей, разделенных двоеточиями. Эти поля таковы.
• Имя пользователя.
• Зашифрованный пароль пользователя. В большинстве систем Linux пароль в действительности не хранится в файле passwd, а помещается в файл shadow (см. подраздел 7.3.3). Формат файла shadow похож на формат файла passwd, однако у обычных пользователей нет разрешения на чтение файла shadow. Второе поле в файле passwd или shadow является зашифрованным паролем, он выглядит как нечитаемый набор символов, например d1CVEWiB/oppc. Пароли в системе Unix никогда не хранятся в виде простого текста.
Символ x во втором поле файла passwd говорит о том, что зашифрованный пароль хранится в файле shadow. Звездочка (*) сообщает, что этот пользователь не может совершать вход в систему, а если это поле пусто (то есть вы видите два двоеточия подряд, ::), то для входа в систему пароля не требуется. Остерегайтесь пустых паролей. Никогда не следует регистрировать пользователя без пароля.
• Реальное имя пользователя (часто называется полем
• Домашний каталог пользователя.
• Оболочка пользователя (команда, которая запускается при работе пользователя в терминале).
На рис. 7.1 обозначены различные поля в одной из записей примера 7.2.
Рис. 7.1. Запись из файла паролей
Синтаксис файла /etc/passwd является довольно строгим и не допускает применения комментариев или пустых строк.
примечание
Пользователь, указанный в файле /etc/passwd, и соответствующий ему домашний каталог известны под обобщающим названием «учетная запись».
7.3.2. Особые пользователи
В файле /etc/passwd можно найти несколько особых пользователей. Пользователь superuser (корневой) всегда обладает идентификаторами UID 0 и GID 0, как в примере 7.2. У некоторых пользователей, таких как
Пользователи, которые не могут входить в систему, именуются
7.3.3. Файл /etc/shadow
Файл паролей shadow (/etc/shadow) в системе Linux обычно содержит информацию об аутентификации пользователя, включая зашифрованные пароли и сведения об окончании срока действия паролей, соответствующих пользователям из файла /etc/passwd.
Файл shadow был введен для обеспечения более гибкого (и более защищенного) способа хранения паролей. Он содержит набор библиотек и утилит, многие из которых скоро будут заменены на модули PАМ (см. раздел 7.10). Вместо того чтобы вводить совершенно новый набор файлов для системы Linux, стандарт PAM использует файл /etc/shadow, а не конкретные файлы конфигурации, такие как /etc/login.defs.
7.3.4. Управление пользователями и паролями
Обычные пользователи взаимодействуют с файлом /etc/passwd с помощью команды passwd. По умолчанию команда passwd изменяет пароль данного пользователя, но можно также указать флаг -f, чтобы изменить реальное имя пользователя, или флаг -s, чтобы изменить оболочку пользователя на одну из перечисленных в файле /etc/shells. Можно также использовать команды chfn и chsh для изменения реального имени и оболочки. Команда passwd относится к разряду suid-root-команд, поскольку только пользователь superuser может изменять файл /etc/passwd.
Изменение файла /etc/passwd с правами пользователя superuser