Как создавать пользователей в Linux (команда useradd)

Linux — это многопользовательская система, что означает, что с одной и той же системой одновременно могут взаимодействовать несколько человек. Как системный администратор, вы обязаны управлять пользователями и группами системы, создавая и удаляя пользователей и назначая их различным группам .

В этой статье мы поговорим о том, как создавать новые учетные записи пользователей с помощью команды useradd .

Команда useradd

Общий синтаксис команды useradd следующий:

useradd [OPTIONS] USERNAME

Только root или пользователи с привилегиями sudo могут использовать команду useradd для создания новых учетных записей пользователей.

При вызове useradd создает новую учетную запись пользователя в соответствии с параметрами, указанными в командной строке, и значениями по умолчанию, установленными в /etc/default/useradd .

Переменные, определенные в этом файле, различаются от дистрибутива к дистрибутиву, что приводит к тому, что команда useradd дает разные результаты в разных системах.

useradd также читает содержимое файла /etc/login.defs . Этот файл содержит конфигурацию для набора теневых паролей, например политику истечения срока действия пароля, диапазоны идентификаторов пользователей, используемых при создании системных и обычных пользователей, и многое другое.

Как создать нового пользователя в Linux

Чтобы создать новую учетную запись пользователя, вызовите команду useradd за которой следует имя пользователя.

Например, чтобы создать нового пользователя с именем username вы должны запустить:

sudo useradd username
При выполнении без каких-либо параметров useradd создает новую учетную запись пользователя, используя настройки по умолчанию, указанные в /etc/default/useradd .

Команда добавляет запись в /etc/passwd , /etc/shadow, /etc/group и /etc/gshadow .

Чтобы иметь возможность войти в систему как вновь созданный пользователь, вам необходимо установить пароль пользователя. Для этого запустите команду passwd за которой следует имя пользователя:

sudo passwd username

Вам будет предложено ввести и подтвердить пароль. Убедитесь, что вы используете надежный пароль.

Changing password for user username.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

Как добавить нового пользователя и создать домашний каталог

В большинстве дистрибутивов Linux при создании новой учетной записи пользователя с помощью useradd домашний каталог пользователя не создается.

Используйте параметр -m ( --create-home ), чтобы создать домашний каталог пользователя как /home/username :

sudo useradd -m username

Приведенная выше команда создает домашний каталог нового пользователя и копирует файлы из каталога /etc/skel в домашний каталог пользователя. Если вы перечислите файлы в каталоге /home/username , вы увидите файлы инициализации:

ls -la /home/username/
drwxr-xr-x 2 username username 4096 Dec 11 11:23 .
drwxr-xr-x 4 root     root     4096 Dec 11 11:23 ..
-rw-r--r-- 1 username username  220 Apr  4  2018 .bash_logout
-rw-r--r-- 1 username username 3771 Apr  4  2018 .bashrc
-rw-r--r-- 1 username username  807 Apr  4  2018 .profile

В домашнем каталоге пользователь может писать, редактировать и удалять файлы и каталоги.

Создание пользователя с определенным домашним каталогом

По умолчанию useradd создает домашний каталог пользователя в /home . Если вы хотите создать домашний каталог пользователя в другом месте, используйте параметр d ( --home ).

Вот пример, показывающий, как создать нового пользователя с именем username с домашним каталогом /opt/username :

sudo useradd -m -d /opt/username username

Создание пользователя с определенным идентификатором пользователя

В Linux и Unix-подобных операционных системах пользователи идентифицируются по уникальному UID и имени пользователя.

Идентификатор пользователя (UID) — это уникальное положительное целое число, присваиваемое системой Linux каждому пользователю. UID и другие политики управления доступом используются для определения типов действий, которые пользователь может выполнять с системными ресурсами.

По умолчанию при создании нового пользователя система присваивает следующий доступный UID из диапазона идентификаторов пользователей, указанных в файле login.defs .

Вызовите useradd с параметром -u ( --uid ), чтобы создать пользователя с определенным UID. Например, чтобы создать нового пользователя с именем username с UID 1500 вы должны ввести:

sudo useradd -u 1500 username

Вы можете проверить UID пользователя, используя команду id :

id -u username
1500

Создание пользователя с определенным идентификатором группы

Группы Linux — это организационные единицы, которые используются для организации и администрирования учетных записей пользователей в Linux. Основная цель групп — определить набор привилегий, таких как разрешение на чтение, запись или выполнение для данного ресурса, которые могут быть совместно использованы пользователями внутри группы.

При создании нового пользователя по умолчанию команда useradd создает группу с тем же именем, что и имя пользователя, и тем же GID, что и UID.

Параметр -g ( --gid ) позволяет вам создать пользователя с определенной начальной группой входа в систему. Вы можете указать имя группы или номер GID. Название группы или GID уже должно существовать.

В следующем примере показано, как создать нового пользователя с именем username и настроить группу входа на тип users :

sudo useradd -g users username

Чтобы проверить GID пользователя, используйте команду id :

id -gn username
users

Создание пользователя и назначение нескольких групп

В операционных системах Linux существует два типа групп: основная группа и дополнительная (или дополнительная) группа. Каждый пользователь может принадлежать ровно к одной основной группе и нулю или более вторичных групп.

Вы можете указать список дополнительных групп, членом которых будет пользователь, с помощью опции -G ( --groups ).

Следующая команда создает новый пользовательское имя username с первичными группами users и вторичными группами wheel и docker .

sudo useradd -g users -G wheel,developers username

Вы можете проверить группы пользователей, набрав

id username
uid=1002(username) gid=100(users) groups=100(users),10(wheel),993(docker)

Создание пользователя с определенной оболочкой входа

По умолчанию оболочка входа нового пользователя установлена на ту, которая указана в /etc/default/useradd . В некоторых дистрибутивах оболочка по умолчанию установлена в /bin/sh а в других — в /bin/bash .

Параметр -s ( --shell ) позволяет указать оболочку входа нового пользователя.

Например, чтобы создать нового пользователя с именем username с /usr/bin/zsh в качестве типа оболочки входа:

sudo useradd -s /usr/bin/zsh username

Проверьте запись пользователя в /etc/passwd чтобы проверить оболочку входа пользователя:

grep username /etc/passwd
username:x :1001:1001::/home/username:/usr/bin/zsh

Создание пользователя с произвольным комментарием

Параметр -c ( --comment ) позволяет добавить краткое описание нового пользователя. Обычно в качестве комментария добавляется полное имя пользователя или контактная информация.

В следующем примере мы создаем нового пользователя с именем username с текстовой строкой Test User Account в качестве комментария:

sudo useradd -c "Test User Account" username

Комментарий сохраняется в /etc/passwd :

grep username /etc/passwd
username:x :1001:1001:Test User Account:/home/username:/bin/sh

Поле комментариев также известно как GECOS .

Создание пользователя с датой истечения срока действия

Чтобы определить время, когда истечет срок действия новых учетных записей пользователей, используйте параметр -e ( --expiredate ). Это полезно для создания временных учетных записей.

Дата должна быть указана в YYYY-MM-DD .

Например, чтобы создать новую учетную запись username с именем username со сроком действия, установленным на 22 января 2019 года, вы должны запустить:

sudo useradd -e 2019-01-22 username

Используйте команду chage чтобы проверить дату истечения срока действия учетной записи пользователя:

sudo chage -l username

Результат будет выглядеть примерно так:

Last password change					: Dec 11, 2018
Password expires					: never
Password inactive					: never
Account expires						: Jan 22, 2019
Minimum number of days between password change		: 0
Maximum number of days between password change		: 99999
Number of days of warning before password expires	: 7

Создание системного пользователя

Технической разницы между системой и обычными (обычными) пользователями нет. Обычно пользователи системы создаются при установке ОС и новых пакетов.

Используйте параметр -r ( --system ), чтобы создать системную учетную запись пользователя. Например, чтобы создать нового системного пользователя с именем username вы должны запустить:

sudo useradd -r username

Пользователи системы создаются без срока действия. Их UID выбираются из диапазона идентификаторов пользователей системы, указанного в файле login.defs , который отличается от диапазона, используемого для обычных пользователей.

Изменение значений useradd по умолчанию

Параметры useradd по умолчанию можно просмотреть и изменить с помощью параметра -D , --defaults или вручную отредактировав значения в /etc/default/useradd .

Чтобы просмотреть текущие параметры по умолчанию, введите:

useradd -D

Результат будет выглядеть примерно так:

GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/sh
SKEL=/etc/skel
CREATE_MAIL_SPOOL=no

Допустим, вы хотите изменить оболочку входа по умолчанию с /bin/sh на /bin/bash . Для этого укажите новую оболочку, как показано ниже:

sudo useradd -D -s /bin/bash

Вы можете убедиться, что значение оболочки по умолчанию изменено, выполнив следующую команду:

sudo useradd -D | grep -i shell
SHELL=/bin/bash

Выводы

Мы показали вам, как создавать новые учетные записи пользователей с помощью команды useradd . Те же инструкции применимы для любого дистрибутива Linux, включая Ubuntu, CentOS, RHEL, Debian, Fedora и Arch Linux.

useradd — это утилита низкого уровня, пользователи Debian и Ubuntu могут вместо этого использовать более удобную команду adduser .

Не стесняйтесь оставлять комментарии, если у вас есть вопросы.

Оставьте комментарий