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 .
Не стесняйтесь оставлять комментарии, если у вас есть вопросы.