После завершения этого раздела вы сможете создавать, изменять и удалять локальные учетные записи пользователей.
Для управления локальными учетными записями пользователей можно использовать ряд утилит командной строки.
Создание пользователей из командной строки
Команда useradd username создает нового пользователя с именем username. Она настраивает домашний каталог пользователя и сведения об учетной записи, а также создает частную группу для пользователя с именем username. На этом этапе у учетной записи нет пароля и пользователь не сможет войти в систему, пока не будет задан пароль.
username
Команда useradd --help отображает базовые опции, которые можно использовать для переопределения значений по умолчанию. В большинстве случаев те же опции можно использовать с командой usermod для изменения существующего пользователя.
Некоторые значения по умолчанию, например диапазон допустимых номеров UID и правила срока действия паролей по умолчанию, считываются из файла /etc/login.defs. Значения в этом файле применяются только при создании новых пользователей. Изменение этого файла не влияет на существующих пользователей.
/etc/login.defs
Изменение существующих пользователей из командной строки
Команда usermod --help отображает основные опции, которые можно использовать для изменения учетной записи. Далее приведены некоторые распространенные опции.
-c, --comment COMMENT
-g, --gid GROUP
-G, --groups GROUPS
-a, --append
-G
-d, --home HOME_DIR
-m, --move-home
-s, --shell SHELL
-L, --lock
-U, --unlock
Удаление пользователей из командной строки
Команда userdel username удаляет сведения о пользователе username из файла /etc/passwd, но не трогает домашний каталог пользователя.
/etc/passwd
Команда userdel -r username удаляет сведения о пользователе username из файла /etc/passwd, а также удаляет домашний каталог пользователя.
При удалении пользователя с помощью команды userdel без опции -r в системе останутся файлы, принадлежащие неназначенному UID. Это также может произойти, если файл, владельцем которого был удаленный пользователь, находится вне домашнего каталога этого пользователя. Эта ситуация может привести к утечке информации и другим проблемам безопасности.
-r
В Red Hat Enterprise Linux 7 и Red Hat Enterprise Linux 8 команда useradd назначает новым пользователям первый свободный UID в диапазоне от 1000 и выше, если вы не укажете явно UID с помощью опции -u.
-u
Вот как происходит утечка информации. Если первый свободный UID ранее принадлежал учетной записи пользователя, которая была удалена из системы, он будет назначен новому пользователю, который получит право владения файлами, оставшимися от прежнего пользователя.
Следующий сценарий демонстрирует эту ситуацию.
[root@host ~]# useradd user01 [root@host ~]# ls -l /home drwx------. 3 user01 user01 74 Feb 4 15:22 user01 [root@host ~]# userdel user01 [root@host ~]# ls -l /home drwx------. 3 1000 1000 74 Feb 4 15:22 user01 [root@host ~]# useradd user02 [root@host ~]# ls -l /home drwx------. 3 user02 user02 74 Feb 4 15:23 user02 drwx------. 3 user02 user02 74 Feb 4 15:22 user01
[root@host ~]#
useradd user01
ls -l /home
userdel user01
useradd user02
Обратите внимание, что теперь пользователю user02 принадлежат все файлы, которые ранее принадлежали пользователю user01.
user02
user01
В зависимости от ситуации одно из решений этой проблемы ― удалять из системы все файлы без владельца при удалении создавшего их пользователя. Еще одно решение — вручную назначить файлы без владельца другому пользователю. Пользователь root может найти все файлы и каталоги без владельца с помощью команды find / -nouser -o -nogroup.
root
Установка паролей из командной строки
Команда passwd username задает начальный пароль или изменяет существующий пароль пользователя username.
Пользователь с правами root может задать любой пароль. Если пароль не соответствует минимальным условиям, отображается соответствующее сообщение и запрос на ввод нового пароля, после чего все токены обновляются.
[root@host ~]# passwd user01 Changing password for user user01. New password: redhat BAD PASSWORD: The password fails the dictionary check - it is based on a dictionary word Retype new password: redhat passwd: all authentication tokens updated successfully. [root@host ~]#
passwd user01
redhat
Обычному пользователю необходимо выбрать пароль длиной не меньше 8 символов, который не основан на слове из словаря, имени пользователя или предыдущем пароле.
Диапазоны номеров UID
Номера и диапазоны номеров UID используются системой Red Hat Enterprise Linux в определенных целях.
UID 0 всегда назначается учетной записи привилегированного пользователя (root).
UID 1–200 — это диапазон «системных пользователей», которых Red Hat статически назначает системным процессам.
UID 201–999 — это диапазон «системных пользователей», используемых системными процессами, которым не принадлежат файлы в файловой системе. Обычно они назначаются динамически из доступного пула, когда они необходимы для установленного программного обеспечения. Так как эти системные пользователи лишены прав, запускающиеся от их имени программы получают доступ только к ресурсам, которые необходимы им для работы.
UID 1000+ — это диапазон, доступный для обычных пользователей.
До выхода RHEL 7 применялось следующее соглашение: номера UID 1–499 использовались для системных пользователей, а номера UID от 500 — для обычных пользователей. Диапазоны по умолчанию, используемые командами useradd и groupadd, можно изменить в файле /etc/login.defs.
Man-страницы useradd(8), usermod(8), userdel(8)