Product SiteDocumentation Site

8.4. Базы данных пользователей и групп

Список пользователей обычно хранится в файле /etc/passwd, а пароли в зашифрованном виде хранятся в файле /etc/shadow. Оба этих файла являются текстовыми, в относительно простом формате, который может быть прочитан и изменен с помощью текстового редактора. Каждому пользователю, упомянутому там, отводится для описания одна строка, включающая в себя несколько полей, разделенных двоеточием (“:”).

8.4.1. Список пользователей: /etc/passwd

Здесь можно увидеть список полей, что используются в файле /etc/passwd:
  • login - имя для входа, например rhertzog;
  • password - пароль: пароль зашифрован односторонней функцией (crypt), опираясь на DES, MD5, SHA-256 или SHA-512. Специальное обозначение “x” показывает, что зашифрованный пароль сохранён в файле /etc/shadow;
  • uid: уникальный номер, идентифицирующий каждого пользователя (например номер 1002 присвоен пользователю rhertzog);
  • gid: уникальный номер главной группы данного пользователя (Debian создает особенную группу для каждого пользователя по умолчанию, например, номер 1002 присвоен группе rhertzog, которая является главной для пользователя rhertzog);
  • GECOS: данные этого заголовка обычно содержат полное имя пользователя (в данном примере - это GECOS, или фамилия-имя-отчество, через запятую);
  • login directory - каталог пользователя (совпадает с именем для входа), предназначенный для того, чтобы пользователь хранил свои персональные файлы (переменная окружения $HOME обычно указывается здесь);
  • program to execute upon login - первая программа, выполненная сразу после входа пользователя в систему. Обычно это командный интерпретатор (shell), например "/bin/bash", дающий пользователю возможность управления (в объеме его прав). Если указать специальное значение /bin/false (которое ничего не делает и возвращает контроль системе немедленно), то пользователь не сможет войти в систему.

8.4.2. Скрытый и Зашифрованный Файл Паролей: /etc/shadow

Файл /etc/shadow содержит следующие поля:
  • login - имя входа пользователя в систему;
  • зашифрованный пароль;
  • несколько полей относятся к окончанию срока действия пароля.

8.4.3. Изменение существующей учетной записи или пароля

Следующие команды позволяют изменять информацию, размещенную в конкретных полях базы данных пользователей. Команда passwd позволяет обычному пользователю изменять их пароль, в этом случае сразу происходит изменение и обновление файла /etc/shadow. Команда chfn (CHange Full Name - Изменить Полное Имя), зарезервирована для администратора (super-user, root), изменяет поле GECOS. Команда chsh (CHange SHell - Изменить командный интерпретатор) позволяет пользователю изменить свой первоначальный командный интерпретатор во время входа в систему, однако доступный выбор будет ограничен только теми, что расположены в файле /etc/shells. На администратора это ограничение не распространяется и он может установить себе любую программу, по своему выбору.
И наконец, команда chage (CHange AGE - Изменить возраст) позволит администратору изменить пароль с истекающим сроком действия (Параметр -l user покажет настоящие значения). Вы можете также принудительно завершить срок действия пароля для пользователя используя команду passwd -e user. В этом случае при следующем входе пользователя в систему ему будет предложено заменить существующий пароль (принудительно, без всяких "хочу" или "не хочу").

8.4.4. Отключение учетной записи

Вам может понадобиться “отключить учетную запись” (заблокировать пользователя), в качестве дисциплинарной меры, для целей расследования, или просто в случае длительного или окончательного отсутствия пользователя. Отключённая учетная запись означает, что пользователь не может войти или получить доступ к машине. Учетная запись остается неизменной на машине и никаких файлов или данных не удаляется, запись просто становится недоступна. Для этого надо применить команду passwd -l user (блокировать). Снять блокировку учетной записи можно похожим способом, с параметром -u (разблокировать).

8.4.5. Список групп: /etc/group

Группы, существующие в системе, перечислены в файле /etc/group, простая текстовая база данных в формате, похожем на тот, что используется в файле /etc/passwd, со следующими полями:
  • имя группы;
  • пароль (необязательно): это поле используется в случаях, если необходимо присоединить кого-то к группе, при этом, не давать ему те же права, как у других членов этой группы (с командами newgrp или sg, смотри вставку К ОСНОВАМ Работа с несколькими группами);
  • gid: уникальный идентификационный номер группы;
  • список участников (данной группы): перечень имен пользователей, которые являются членами указанной группы, разделенные запятыми.
Команды addgroup и delgroup соответственно добавляют или удаляют группы. Команда groupmod изменит информацию о группе (его gid или идентификатор). Команда passwd -g group изменит пароль для группы, а команда passwd -r -g group удалит его.