ENGLISH | KOI | WIN | ALT | ISO
Мои программы

Какие данные хранятся в учетной карточке?

Прежде чем перечислить - какие поля есть в учетной карточке, хотелось бы обратить внимание вот на что.

Каждому юзеру присваивается уникальный номер (user ID), именно этот цифровой номер и используется внутри операционной системы при проверке прав доступа, сборе и хранении статистики и т.д. Однако, для человека оперировать все время номерами юзеров не удобно. Поэтому, каждому юзеру кроме номера присваивается еще уникальное имя (login name).

Если в какой-нибудь команде требуется в качестве аргумента указать юзера, обычно используется это "login name". И, наоборот, если какая-либо программа в своем выводе как-нибудь упоминает конкретных юзеров, она обычно называете их этим именем, а не просто печатает номер юзера.

То есть, между user ID и name должно быть всегда однозначное соответствие. Просто user ID используется во внутренних данных системы, а name при общеннии человек-компьютер.

Итак. В учетной карточке юзера хранится

  • Name
  • Password
  • user ID
  • group ID
  • General information
  • Home dir
  • Shell
  • кроме того есть еще поля, которые часто не используются (кстати, в карточке они располагаются между group ID и General Information)
  • Class
  • Password change time
  • Account expiration time
  • Назначение этих полей.

    Name

    Это уникальное имя юзера. Его спрашивают при входе в компьютер. Оно используется в командах администрирования.

    Password

    Пароль. Для того, чтобы никто другой, кроме этого юзера не мог войти в систему, естественно, у каждого юзера должен быть его собственный секретный пароль для входа. Вообще-то, пароль может и отсутствовать, но это очень не рекомендуется. Особенно, если машина доступна по сети.

    Кстати, пароли хранятся в базе в закодированном виде, поэтому, даже администратор не может его узнать. (Собственно администратору он и не нужен, у него и так права не ограничены. А вот если юзер забудет свой пароль, то проще попросить администратора записать новый пароль, чем пытаться извлечь старый).

    user ID

    Уникальный номер юзера. Он однозначно соответствует имени (Name) и используется внутри системы. (Строго говоря, может быть и несколько записей с одним user ID, но разными Name. Но для обычных пользователей это не нужно.)

    group ID

    Номер группы, к которой принадлежит юзер. Подробнее о группах смотри Администрирование групп юзеров.

    General information

    Это просто некоторые "анкетные данные" того реального человека, который скрывается под Name. Это поле можно и не заполнять. Обычно там пишут просто реальное имя/фамилию юзера (например John Doe).

    Однако, полностью это поле может состоять из

    • Full Name - Имя Фамилия,
    • Location - адрес (имеется в виду рабочее место),
    • Office Phone - рабочий телефон,
    • Home Phone - домашний телефон

    Home dir

    Домашний каталог юзера. Именно в этом каталоге помещаются настроечные файлы для различных программ с настройками под конкретного юзера. Здесь же юзеру дается полная свобода создавать/удалять свои файлы.

    Shell

    Программа, которая запускается для юзера, когда он входит в систему. Обычно это "исполнитель комманд" (типа command.com в DOS'е), который принимает комманды с терминала и, в свою очередь, запускает программы, необходимые юзеру.

    В современных Unix'ах обычно есть несколько таких "исполнителей" (sh, csh, tcsh, bash ...) из которых можно выбрать наиболее подходящий.

    Но, вместо такого "исполнителя команд" здесь может быть указана любая другая программа, что часто используется для некоторых задач.

    Подробнее об этом сказано в разделе "Для чего используется учетная карточка".

    Class

    Это поле служит для поиска дополнительной информации для данного юзера в специальной базе данных "login-классов". Дело в том, что учетная карточка содержит минимальный набор данных для регистрации юзера и создания ему "среда обитания". Но со временем появилась необходимость расширить эту информацию. Например, было бы полезно устанавливать ограничения на используемые юзером ресурсы машины - количество задач, которые юзер может запускать одновременно, или количество файлов, кторые его задачи могут одновременно держать открытыми. С другой стороны, кроме Home dir и Shell было бы удобно сразу при входе в систему автоматически устанавливать юзеру некоторые "переменные окружения" (например - "язык сообщений").

    Конечно, можно было бы добавить соответствующие поля в учетную карточку. Но, с одной стороны, это неудобно с точке зрения гибкости - формат учетной карточки фиксированный и если просто добавлять в нее новые поля, то со временем их количество стало бы просто кошмарным, причем для конкретного юзера далеко не все они были бы заполнены чем-то полезным. С другой строны, такая информация (ограничения или "переменные среды") обычно не сильно различаются для различных юзеров.

    Поэтому, в FreeBSD решили юзеров группировать в login-классы (не путайте их с традиционными группами юзеров), а все дополнительные данные для такой группы (или другими словами - для каждого юзера из этой группы) поместили в отдельную базу данных - login.conf, которая имеет очень гибкий формат и позволяет легко добавлять новые поля. Конечно, при необходимости можно для каждого юзера создать отдельный login-класс в этой базе, но в большинстве случаев этого не требуется.

    Итак. Это поле просто указывает - к какому login-классу относится данный юзер, и соответсвенно - где искать дополнительные данные для этого юзера.

    Поробнее о базе данных login-классов смотрите в "База данных login.conf".

    Password change time

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

    Account expiration time

    А здесь администратор задает дату, после которой доступ юзеру в систему будет запрещен. То есть, account юзера сохраняется (и все его файлы тоже), но войти в систему он не сможет (пока не договорится с администратором :-).

    Подробнее обо всем этом можно прочитать в соответствующем man'уале.
    man 5 passwd.