Мы все знаем о самых популярных командах под названием ‘useradd‘ или ‘adduser‘ в Linux. Иногда системный администратор Linux просят создать учетные записи пользователей в Linux с определенными свойствами, ограничениями или комментариями.
В Linux команда ‘useradd‘ является низкоуровневым инструментом, используемым для добавления или создания учетных записей пользователей в Linux и других операционных системах, похожих на Unix. Команда ‘adduser‘ очень похожа на команду ‘useradd‘, так как это просто символическая ссылка на нее.
В некоторых дистрибутивах Linux команда ‘useradd‘ может иметь немного другую версию. Я рекомендую прочитать документацию перед использованием наших инструкций для создания новых учетных записей в Linux.
Когда мы запускаем команду ‘useradd‘ в терминале Linux, она выполняет следующие основные задачи:
- Она редактирует файлы /etc/passwd, /etc/shadow, /etc/group и /etc/gshadow для вновь созданных учетных записей пользователей.
- Создает и заполняет домашний каталог для нового пользователя.
- Устанавливает разрешения и права собственности на домашний каталог.
Команда useradd Синтаксис
Базовый синтаксис команды ‘useradd‘ следующий:
useradd [options] username
В этой статье мы продемонстрируем 15 наиболее часто используемых команд ‘useradd‘ с практическими примерами в Linux.
1. Как добавить нового пользователя в Linux
Чтобы добавить или создать нового пользователя, необходимо использовать команду ‘useradd‘ или ‘adduser‘ с последующим ‘username‘. ‘username‘ – это имя входа, которое пользователь использует для входа в систему.
Можно добавить только одного пользователя, и имя пользователя должно быть уникальным, и не должно существовать в системе.
Например, чтобы добавить нового пользователя с именем ‘tecmint‘, используйте следующую команду:
useradd tecmint
Когда мы добавляем нового пользователя в Linux с помощью команды ‘useradd‘, он создается в заблокированном состоянии. Чтобы разблокировать этот аккаунт пользователя, нам нужно установить пароль для этого аккаунта с помощью команды ‘passwd‘.
passwd tecmint Changing password for user tecmint. New UNIX password: Retype new UNIX password: passwd: all authentication tokens updated successfully.

Как только новый пользователь создан, его запись автоматически добавляется в файл ‘/etc/passwd‘. Этот файл используется для хранения информации о пользователе, и запись должна быть.
tecmint:x:1000:1000:tecmint:/home/tecmint:/bin/bash

Вышеуказанная запись содержит набор из семи полей, разделенных двоеточиями, каждое поле имеет свое значение.
Давайте посмотрим, что это за поля:
- Username – имя пользователя для входа в систему. Длина имени должна быть от 1 до 32 символов.
- Пароль – Пароль пользователя (или символ
'x'
) хранится в файле ‘/etc/shadow‘ в зашифрованном формате. - Идентификатор пользователя (UID) – Каждому пользователю должен быть присвоен Идентификатор пользователя (UID), который означает Идентификационный номер пользователя. По умолчанию UID 0 зарезервирован для пользователя root, а UID от 1 до 99 зарезервированы для других предопределенных учетных записей. Кроме того, UID от 100 до 999 зарезервированы для системных учетных записей и групп.
- Идентификатор группы (GID) – Основной Идентификатор группы (GID), который означает Идентификационный номер группы, хранится в файле ‘/etc/group‘.
- Информация о пользователе – Этот раздел является необязательным и позволяет определить дополнительную информацию о пользователе, такую как полное имя пользователя. Эту информацию можно заполнить с помощью команды finger.
- Домашний каталог – Абсолютное расположение домашнего каталога пользователя.
- Скрипт – Абсолютное расположение скрипта пользователя, т.е. /bin/bash.
2. Как создать пользователя с другим домашним каталогом
По умолчанию команда ‘useradd‘ создает домашний каталог пользователя в каталоге ‘/home‘ с именем пользователя. Например, как видно выше, домашний каталог пользователя ‘tecmint‘ по умолчанию ‘/home/tecmint‘.
Однако это поведение может быть изменено с использованием опции '-d'
вместе с местоположением нового домашнего каталога (например, ‘/data/projects‘). Например, следующая команда создаст пользователя ‘anusha‘ с домашним каталогом, установленным на ‘/data/projects‘.
# useradd -d /data/projects anusha # passwd anusha
Вы можете просмотреть домашний каталог пользователя и другую информацию о пользователе, такую как идентификатор пользователя, идентификатор группы, оболочка и комментарии, используя следующую команду cat.
cat /etc/passwd | grep anusha anusha:x:1001:1001::/data/projects:/bin/bash

3. Как создать пользователя с определенным идентификатором пользователя
В Linux каждый пользователь имеет свой собственный UID (уникальный идентификационный номер). По умолчанию, при создании новой учетной записи пользователя в Linux ему назначаются идентификаторы пользователей 500, 501, 502 и так далее.
Однако мы можем создавать пользователей с пользовательскими идентификаторами, используя опцию '-u'
. Например, следующая команда создаст пользователя ‘navin‘ с пользовательским идентификатором ‘1002‘.
useradd -u 1002 navin
Теперь давайте проверим, что пользователь создан с определенным идентификатором пользователя (1002), используя следующую команду.
cat /etc/passwd | grep navin navin:x:1002:1002::/home/navin:/bin/bash

ПРИМЕЧАНИЕ: Убедитесь, что значение идентификатора пользователя должно быть уникальным относительно уже созданных пользователей в системе.
4. Как создать пользователя с определенным идентификатором группы
Similarly, every user has their own Group Identifier. We can create users with specific group IDs as well using the '-g'
option.
В этом примере мы добавим пользователя ‘tarunika‘ с определенным UID и GID одновременно с помощью опций '-u'
и '-g'
.
useradd -u 1005 -g tecmint tarunika
Теперь проверьте присвоенный идентификатор пользователя и группы в файле ‘/etc/passwd‘.
cat /etc/passwd | grep tarunika tarunika:x:1005:1000::/home/tarunika:/bin/bash
Чтобы проверить идентификатор GID пользователя, используйте команду id:
id -gn tarunika

5. Как добавить пользователя в несколько групп
Опция '-G'
используется для добавления пользователя в дополнительные группы. Каждое название группы разделяется запятой без пробелов.
В этом примере мы добавляем пользователя ‘tecmint‘ в несколько групп, таких как admins, webadmin и developers.
groupadd admins groupadd webadmin groupadd developers usermod -a -G admins,webadmin,developers tecmint useradd -G admins,webadmin,developers paddy
Затем проверьте, что несколько групп назначены пользователю с помощью команды id.
id tecmint uid=1000(tecmint) gid=1000(tecmint) groups=1000(tecmint),1007(admins),1008(webadmin),1009(developers) context=root:system_r:unconfined_t:SystemLow-SystemHigh

6. Как добавить пользователя без домашнего каталога
В некоторых ситуациях, когда мы не хотим назначать домашние каталоги для пользователя из соображений безопасности, домашний каталог пользователя будет корневым, когда он войдет в систему, которая только что перезапустилась. Когда такой пользователь использует команду ‘su‘, его каталогом входа будет домашний каталог предыдущего пользователя.
Для создания пользователей без их домашних каталогов используется опция '-M'
. Например, следующая команда создаст пользователя «shilpi» без домашнего каталога.
useradd -M shilpi
Теперь давайте проверим, что пользователь создан без домашнего каталога, используя команду ls.
ls -l /home/shilpi ls: cannot access /home/shilpi: No such file or directory

7. Как создать пользователя с датой истечения срока действия в Linux
По умолчанию, когда мы добавляем пользователей с помощью команды «useradd», учетная запись пользователя никогда не истекает, что означает, что их дата истечения установлена в 0 (что означает никогда не истекает).
Однако мы можем установить дату истечения срока действия с помощью опции '-e'
, которая должна быть в формате ГГГГ-ММ-ДД. Это полезно для создания временных учетных записей на определенный период времени.
В этом примере мы создаем пользователя «aparna» с датой истечения срока действия учетной записи, которая составляет 27 августа 2021 года, в формате ГГГГ-ММ-ДД.
useradd -e 2021-08-27 aparna
Затем проверьте информацию об учетной записи и сроке действия пароля с помощью команды «chage» для пользователя «aparna» после установки даты истечения срока действия учетной записи.
chage -l aparna Last password change : Jun 25, 2021 Password expires : never Password inactive : never Account expires : Aug 27, 2021 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

8. Как создать пользователя с датой истечения срока действия пароля
Аргумент '-f'
используется для определения количества дней после истечения срока действия пароля. Значение 0 деактивирует учетную запись пользователя сразу после истечения срока действия пароля. По умолчанию значение срока действия пароля установлено на -1
, что означает, что он никогда не истекает.
В этом примере мы установим срок действия пароля учетной записи, равный 45 дням, для пользователя ‘mansi‘ с использованием опций '-e'
и '-f'
.
useradd -e 2014-04-27 -f 45 mansi

9. Как добавить пользователя с комментариями в Linux
Опция '-c'
позволяет добавить пользовательские комментарии, такие как полное имя пользователя, номер телефона и т. д., в файл ‘/etc/passwd‘. Комментарий может быть добавлен как одна строка без пробелов.
Например, следующая команда добавит пользователя ‘mansi‘ и вставит полное имя этого пользователя, Манси Хурана, в поле комментария.
useradd -c "Manis Khurana" mansi
Вы можете просмотреть вставленный комментарий в файле ‘/etc/passwd‘ в разделе комментариев, используя команду tail.
tail -1 /etc/passwd mansi:x:1010:1013:Manis Khurana:/home/mansi:/bin/sh

10. Как создать оболочку входа пользователя в Linux
Иногда мы добавляем пользователей, которым не нужна оболочка входа, или иногда нам нужно назначить разные оболочки нашим пользователям. Мы можем назначить разные оболочки входа для каждого пользователя с помощью опции ‘-s‘.
Здесь, в этом примере, будет добавлен пользователь ‘tecmint‘ без входной оболочки, т. е. оболочки ‘/sbin/nologin‘.
useradd -s /sbin/nologin tecmint
Вы можете проверить назначенную оболочку пользователю в файле ‘/etc/passwd‘.
tail -1 /etc/passwd tecmint:x:1011:1014::/home/tecmint:/sbin/nologin

11. Как создать пользователя с указанным домашним каталогом, оболочкой и комментарием
Следующая команда создаст пользователя ‘ravi‘ с домашним каталогом ‘/var/www/tecmint‘, оболочкой по умолчанию /bin/bash и дополнительной информацией о пользователе.
useradd -m -d /var/www/ravi -s /bin/bash -c "TecMint Owner" -U ravi

В указанной выше команде опции '-m'
и '-d'
создают пользователя с указанным домашним каталогом, а опция '-s'
устанавливает оболочку пользователя по умолчанию в /bin/bash. Опция '-c'
добавляет дополнительную информацию о пользователе, а аргумент '-U'
создает/добавляет группу с тем же именем, что и у пользователя.
12. Как создать пользователя с определенным домашним каталогом, оболочкой, комментарием, UID/GID
Команда очень похожа на приведенную выше, но здесь мы определяем оболочку как ‘/bin/zsh‘ и устанавливаем пользовательский UID и GID для пользователя ‘tarunika‘. Опция '-u'
определяет UID нового пользователя (т. е. 100), а опция '-g'
определяет GID (т. е. 1000).
useradd -m -d /var/www/tarunika -s /bin/zsh -c "TecMint Technical Writer" -u 1000 -g 100 tarunika

13. Как создать пользователя с домашним каталогом, без оболочки, комментарием и UID
Следующая команда очень похожа на две предыдущие команды. Единственное отличие в том, что здесь мы отключили входную оболочку для пользователя по имени «avishek» с пользовательским идентификатором (т.е. 1019).
Опция '-s'
устанавливает оболочку по умолчанию в /bin/bash, но в данном случае мы установили входную оболочку в «/usr/sbin/nologin». Это означает, что пользователь «avishek» не сможет войти в систему.
useradd -m -d /var/www/avishek -s /usr/sbin/nologin -c "TecMint Sr. Technical Writer" -u 1019 avishek

14. Как создать пользователя с указанным домашним каталогом, оболочкой, скелетом и UID
Единственное изменение в этой команде заключается в том, что мы использовали опцию '-k'
для установки пользовательского каталога скелета в /etc/custom.skell вместо стандартного /etc/skel. Мы также использовали опцию '-s'
для определения другой оболочки, /bin/tcsh, для пользователя «navin».
useradd -m -d /var/www/navin -k /etc/custom.skell -s /bin/tcsh -c "No Active Member of TecMint" -u 1027 navin

15. Как создать пользователя без домашнего каталога, оболочки или группы, с комментарием
Следующая команда очень отличается от других выше объясненных команд. Здесь мы использовали опцию '-M'
для создания пользователя без домашнего каталога пользователя, и опция '-N'
используется для указания системе создать только имя пользователя (без группы). Опция '-r'
предназначена для создания системного пользователя.
useradd -M -N -r -s /bin/false -c "Disabled TecMint Member" clayton

Для получения дополнительной информации и опций о «useradd», выполните команду «useradd» в терминале, чтобы увидеть доступные опции
useradd
Если вы хотите изменить атрибуты учетной записи пользователя, такие как изменение имени пользователя, идентификатора пользователя (UID), домашнего каталога, оболочки и других, используйте команду usermod.