Какие данные хранятся в бюджете пользователя?
Прежде чем перечислить - какие поля есть в бюджете пользователя, хотелось бы обратить внимание вот на что.
Каждому юзеру присваивается уникальный номер (user ID), именно этот цифровой номер и используется внутри операционной системы при проверке прав доступа, сборе и хранении статистики и т.д. Однако оперировать все время номерами юзеров не удобно. Поэтому, каждому юзеру кроме номера присваивается еще уникальное имя (login name).
Если в какой-нибудь системной команде требуется в качестве аргумента указать юзера, обычно используется это "login name". И, наоборот, если какая-либо программа в своем выводе как-нибудь упоминает конкретных юзеров, она обычно называете их этим именем, а не просто печатает номер юзера.
То есть, между user ID и login name должно быть всегда однозначное соответствие. Просто user ID используется во внутренних данных системы, а login name (или просто login) - при общении человек-компьютер.
Итак. В учетной карточке юзера хранится
- Name
- Password
- user ID
- group ID
- General information
- Home dir
- Shell
кроме того есть еще поля, которые часто не используются (кстати, они располагаются между group ID и General Information)
- Class
- Password change time
- Account expiration time
Назначение этих полей.
Name
Это уникальное имя юзера (login name). Его спрашивают при входе в компьютер. Оно используется в командах администрирования.
Password
Пароль. Для того чтобы никто другой, кроме этого юзера не мог войти в систему, у каждого юзера должен быть его собственный секретный пароль для входа. Вообще-то, пароль может и отсутствовать, но это не рекомендуется (надеюсь понятно почему?). Особенно, если машина доступна по сети.
Пароли хранятся в базе данных в зашифрованном виде, поэтому, даже администратор не может его узнать. (Собственно администратору он и не нужен, у него и так права не ограничены. А вот если юзер забудет свой пароль, то проще попросить администратор записать новый пароль, чем пытаться извлечь старый).
user ID
Уникальный номер юзера.
Он однозначно соответствует имени (Name) и используется внутри системы.
group ID
Номер группы, к которой принадлежит юзер. Подробнее о группах см. далее.
General information
Это просто некоторые анкетные данные того реального человека, который скрывается под Name. Это поле можно и не заполнять. Обычно там пишут просто реальное имя/фамилию юзера (например, John Doe).
Однако, полностью это поле может состоять из:
- Full Name - Имя Фамилия,
- Location - адрес (имеется в виду рабочее место),
- Office Phone - рабочий телефон,
- Home Phone - домашний телефон
- Home dir
Shell
Программа, которая запускается для юзера, когда он входит в систему. Обычно это "исполнитель команд", или по другому shell (оболочка) (аналог command.com в системе DOS), который принимает команды с терминала и, в свою очередь, запускает программы, необходимые юзеру.
В современных Unix'ах обычно есть несколько таких shell (sh, csh, tcsh, bash ...) из которых можно выбрать наиболее подходящий "по вкусу".
Но, вместо shell здесь может быть указана любая другая программа, что нередко используется для решения некоторых задач.
Class
Это поле пока ничего не означает. По замыслу, юзер может принадлежать к некоему login-классу. При этом, когда он будет входить в систему, могут быть сделаны какие-нибудь установки (например заданы переменные среды), общие для всех юзеров этого класса. Естественно, должна быть еще некая база данных, в которой указанно - что делать для юзера из конкретного класса (или не делать). Но, сейчас (по крайней мере до версии 3.1) это поле никакими программами не используется.
Password change time
Здесь администратор может указать дату, когда юзеру следует поменять пароль. Дело в том, что, если требуется повышенная секретность, одной из мер предосторожности является то, что пароли должны периодически меняться (раз в неделю, месяц и т.п.).Для того, чтобы заставить юзера следовать этому правилу, администратор задает дату, после наступления которой компьютер будет предлагать юзеру при входе систему поменять свой пароль.
Account expiration time
А здесь администратор задает дату, после которой доступ юзеру в систему будет запрещен. То есть, account юзера сохраняется (и все его файлы тоже), но войти в систему он не сможет (пока не договорится с администратором :-).
Подробнее обо всем этом можно прочитать на соответствующей man-странице.
man 5 passwd.