Концепция работы с пользователями
Система сохраняет различную информацию о каждом пользователе К такого рода информации относится перечисленная ниже.
username
уникальный идентификатор, присваиваемый каждому пользователю в системе. Примеры имен пользователей larry, karl и mdw. Могут использоваться буквы и цифры, а также нижнее подчеркивание и точка. Обычно имена пользователей ограничиваются восемью символами.
userID (или UID) - идентификатор пользователя - уникальный номер, присваиваемый каждому пользователю системы. Система обычно отслеживает идентификаторы пользователей, а не имена.
groupID (или GID) - идентификатор группы это идентификатор группы пользователя. В Разделе 3.9 мы обсуждали права группы; каждый пользователь принадлежит к одной или более группам, определенных системным администратором. Подробнее об этом ниже.
passwordСистема также хранит в зашифрованном виде пароль пользователя. Команда passwd используется для установки и изменения пароля.
full name"Полное имя" или "действительное имя" хранится вместе с именем пользователя. Например, пользователь schmoj может иметь действительное имя ``Joe Schmo'' (прим. переводчика: неужели для английского уха оно звучит также красиво, как для русского).
home directoryДомашний каталог - это каталог, в который пользователь начально попадает при входе в систему. Каждый пользователь должен иметь свой собственный домашний каталог, обычно ниже /home.
login shellИсходный shell - это shell, который запускается для пользователя при его входе в систему. Это, например, может быть /bin/bash и /bin/tcsh.
Файл /etc/passwd содержит эту информацию про пользователей. Каждая строка этого файла содержит информацию об одном пользователе; формат строки имеет вид:
username:encrypted_password:UID:GID:full_name:home_directory:login_shell
Например, это может выглядеть так:
kiwi:Xv8Q981g71oKK:102:100:Laura Poole:/home/kiwi:/bin/bash
Как видно, первое поле ``kiwi'' - имя пользователя. Следующее поле ``Xv8Q981g71oKK'' - зашифрованный пароль. Пароли в читаемом виде в системе не хранятся. Сами пароли шифруются как секретные ключи. Другими словами, вы должны знать пароль, чтобы его расшифровать. Эта форма шифрации достаточно надежна.
Некоторые системы Linux используют "теневой пароль", в котором информация о паролях хранится в файле /etc/shadow. Поскольку /etc/passwd всем доступен, /etc/shadow обеспечивает дополнительный уровень секретности своей недоступностью. Теневой пароль обеспечивает и некоторые другие свойства, вроде прекращения действия пароля и т.д.; мы здесь не будем вдаваться в эти тонкости.
Третье поле, ``102'', - идентификатор пользователя (UID). Оно должно быть уникальным для каждого пользователя. Четвертое поле, ``100'', идентификатор группы (GID). Этот пользователь принадлежит к группе номер 100. Информация по группе хранится в файле /etc/group. Смотрите дополнительную информацию в Разделе 4.4.5.
Пятое поле - полное имя пользователя , ``Laura Poole''. Последние два поля - домашний каталог пользователя (/home/kiwi) и исходный shell (/bin/bash) соответственно. Домашний каталог пользователя не обязательно должен иметь имя, совпадающее с именем пользователя (username). Однако это помогает в идентификации.