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
: уникальный номер, идентифицирующий каждого пользователя;
gid
: уникальный номер главной группы данного пользователя (Debian создает определённую группу для каждого пользователя по умолчанию);
GECOS
: данные этого поля обычно содержат полное имя пользователя (в данном примере фамилия-имя-отчество, через запятую);
login directory - каталог пользователя (совпадает с именем для входа), предназначенный для хранения персональных файлов пользователя (переменная окружения $HOME
обычно указывает сюда);
program to execute upon login - первая программа, выполняемая сразу после входа пользователя в систему. Обычно это командный интерпретатор (shell), например "/bin/bash", дающий пользователю возможность управления (в объёме его прав). Если указать специальное значение /bin/false
(которое немедленно возвращает контроль системе ), то пользователь не сможет войти в систему.
8.4.2. Скрытый и Зашифрованный Файл Паролей: /etc/shadow
Файл /etc/shadow
содержит следующие поля:
С помощью этого файла можно установить срок действия паролей или установить время до отключения учётной записи после истечения срока действия пароля.
8.4.3. Изменение существующей учётной записи или пароля
Следующие команды позволяют изменять информацию, размещенную в конкретных полях базы данных пользователей. Команда passwd
позволяет обычному пользователю изменять свой пароль, в этом случае сразу происходит изменение и обновление файла /etc/shadow
, команда (chpasswd
позволяет администраторам обновлять пароли для списка пользователей в пакетном режиме); команда chfn
(CHange Full Name - Изменить Полное Имя), зарезервированная для администратора (root), изменяет поле GECOS
. Команда chsh
(CHange SHell - Изменить командный интерпретатор) позволяет пользователю изменить свой первоначальный командный интерпретатор во время входа в систему, однако доступный выбор будет ограничен только теми, что расположены в файле /etc/shells
. На администратора это ограничение не распространяется и он может установить себе любую программу по своему выбору.
И наконец, команда chage
(CHange AGE - Изменить возраст) позволит администратору изменить пароль с истекающим сроком действия (Параметр -l user
покажет настоящие значения). Вы можете также принудительно завершить срок действия пароля для пользователя командой passwd -e user
. В этом случае при следующем входе пользователя в систему ему будет принудительно предложено заменить существующий пароль.
Помимо этих инструментов, команда usermod
позволяет изменять все детали, упомянутые выше.
8.4.4. Отключение учётной записи
Вам может понадобиться “отключить учётную запись” (заблокировать пользователя), в качестве дисциплинарной меры при расследовании происшествия, или просто в случае длительного или окончательного отсутствия пользователя. Отключённая учётная запись означает, что пользователь не может войти или получить доступ к машине. Учётная запись остается недоступной и неизменной на машине и никакие файлы или данные не удаляются. Для этого надо применить команду passwd -l user
(lock - блокировать). Снять блокировку учетной записи можно похожим способом, с параметром -u
(unlock - разблокировать). Однако это предотвращает только вход пользователя в систему с использованием пароля. Пользователь по-прежнему может иметь доступ к системе с помощью ключа SSH (если он настроен). Чтобы предотвратить даже эту возможность, вам также необходимо аннулировать срок действия учётной записи, используя команду chage -E 1user
или usermod -e 1 user
(дав значение -1
, любая из этих команд сбросит дату истечения срока действия на never
). Чтобы (временно) отключить все учётные записи пользователей, просто создайте файл /etc/nologin
.
Вы можете отключить учётную запись пользователя, не только заблокировав её, как описано выше, но и изменив её оболочку входа по умолчанию (chsh -s shell user
). Если последняя изменена на команду /usr/sbin/nologin/
, пользователь получает вежливое сообщение, информирующее о том, что вход в систему невозможен, в то время как команда /bin/false/
просто завершает работу, возвращая false
. Переключателя для восстановления предыдущей оболочки нет. Вам необходимо получить и сохранить эту информацию, прежде чем изменять настройку. Эти оболочки часто используются для пользователей системы, которым не требуется вход в систему.
8.4.5. Список групп: /etc/group
Группы, существующие в системе, перечислены в файле /etc/group
, простая текстовая база данных в формате, похожем на тот, что используется в файле /etc/passwd
, со следующими полями:
имя группы;
пароль (необязательно): это поле используется в случаях, если необходимо присоединить кого-то к группе, при этом, не давать ему те же права, как у других членов этой группы (команды
newgrp
или
sg
, см. врезку
К ОСНОВАМ Работа с несколькими группами);
gid
: уникальный идентификационный номер группы;
список участников (данной группы): список имён пользователей, которые являются членами указанной группы, разделённых запятыми.
Команды addgroup
и delgroup
соответственно добавляют или удаляют группы. Команда groupmod
изменит информацию о группе (её gid
или идентификатор). Команда passwd -g group
изменит пароль для группы, а команда passwd -r -g group
удалит его.