8.4. Базы данных пользователей и групп
The list of users is usually stored in the /etc/passwd
file, while the /etc/shadow
file stores hashed passwords. Both are text files, in a relatively simple format, which can be read and modified with a text editor. Each user is listed there on a line with several fields separated with a colon (“:
”).
8.4.1. Список пользователей: /etc/passwd
Здесь можно увидеть список полей, что используются в файле /etc/passwd
:
login - имя для входа, например rhertzog
;
password
: this is a password encrypted by a one-way function (crypt
), relying on DES
, MD5
, SHA-256
or SHA-512
. The special value “x
” indicates that the encrypted password is stored in /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
содержит следующие поля:
One can expire passwords using this file or set the time until the account is disabled after the password has expired.
8.4.3. Изменение существующей учетной записи или пароля
The following commands allow modification of the information stored in specific fields of the user databases: passwd
permits a regular user to change their password, which in turn, updates the /etc/shadow
file (chpasswd
allows administrators to update passwords for a list of users in batch mode); chfn
(CHange Full Name), reserved for the super-user (root), modifies the GECOS
field. chsh
(CHange SHell) allows the user to change their login shell; however, available choices will be limited to those listed in /etc/shells
; the administrator, on the other hand, is not bound by this restriction and can set the shell to any program of their choosing.
И наконец, команда chage
(CHange AGE - Изменить возраст) позволит администратору изменить пароль с истекающим сроком действия (Параметр -l user
покажет настоящие значения). Вы можете также принудительно завершить срок действия пароля для пользователя используя команду passwd -e user
. В этом случае при следующем входе пользователя в систему ему будет предложено заменить существующий пароль (принудительно, без всяких "хочу" или "не хочу").
Besides these tools the usermod
command allows to modify all the details mentioned above.
8.4.4. Отключение учетной записи
You may find yourself needing to “disable an account” (lock out a user), as a disciplinary measure, for the purposes of an investigation, or simply in the event of a prolonged or definitive absence of a user. A disabled account means the user cannot login or gain access to the machine. The account remains intact on the machine and no files or data are deleted; it is simply inaccessible. This is accomplished by using the command passwd -l user
(lock). Re-enabling the account is done in similar fashion, with the -u
option (unlock). This, however, only prevents password-based logins by the user. The user might still be able to access the system using an SSH key (if configured). To prevent even this possibility you have to expire the account as well using either chage -E 1user
or usermod -e 1 user
(giving a value of -1
in either of these commands will reset the expiration date to never
). To (temporarily) disable all user accounts just create the file /etc/nologin
.
You can disable a user account not only by locking it as described above, but also by changing its default login shell (chsh -s shell user
). With the latter changed to /usr/sbin/nologin
, a user gets a polite message informing that a login is not possible, while /bin/false
just exits while returning false
. There is no switch to restore the previous shell. You have to get and keep that information before you change the setting. These shells are often used for system users which do not require any login availability.
8.4.5. Список групп: /etc/group
Группы, существующие в системе, перечислены в файле /etc/group
, простая текстовая база данных в формате, похожем на тот, что используется в файле /etc/passwd
, со следующими полями:
имя группы;
пароль (необязательно): это поле используется в случаях, если необходимо присоединить кого-то к группе, при этом, не давать ему те же права, как у других членов этой группы (с командами
newgrp
или
sg
, смотри вставку
К ОСНОВАМ Работа с несколькими группами);
gid
: уникальный идентификационный номер группы;
список участников (данной группы): перечень имен пользователей, которые являются членами указанной группы, разделенные запятыми.
The addgroup
and delgroup
commands add or delete a group, respectively. The groupmod
command modifies a group's information (its gid
or identifier). The command gpasswd group
changes the password for the group, while the gpasswd -r group
command deletes it.