Как создать пользователей в Linux [15 примеров команды useradd]

Мы все знаем о самых популярных командах под названием ‘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.
Create a User in Linux

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

tecmint:x:1000:1000:tecmint:/home/tecmint:/bin/bash
View User Info in Linux

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

Давайте посмотрим, что это за поля:

  • 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
Create a User with a Home Directory in Linux

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
Create a User with the User ID in Linux

ПРИМЕЧАНИЕ: Убедитесь, что значение идентификатора пользователя должно быть уникальным относительно уже созданных пользователей в системе.

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
Create a User with Group ID in Linux

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
Add User to Group in Linux

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

В некоторых ситуациях, когда мы не хотим назначать домашние каталоги для пользователя из соображений безопасности, домашний каталог пользователя будет корневым, когда он войдет в систему, которая только что перезапустилась. Когда такой пользователь использует команду ‘su‘, его каталогом входа будет домашний каталог предыдущего пользователя.

Для создания пользователей без их домашних каталогов используется опция '-M'. Например, следующая команда создаст пользователя «shilpi» без домашнего каталога.

useradd -M shilpi

Теперь давайте проверим, что пользователь создан без домашнего каталога, используя команду ls.

ls -l /home/shilpi

ls: cannot access /home/shilpi: No such file or directory
Create User Without Home Directory in Linux

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
Create User With Account Expiry Date

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

Аргумент '-f' используется для определения количества дней после истечения срока действия пароля. Значение 0 деактивирует учетную запись пользователя сразу после истечения срока действия пароля. По умолчанию значение срока действия пароля установлено на -1, что означает, что он никогда не истекает.

В этом примере мы установим срок действия пароля учетной записи, равный 45 дням, для пользователя ‘mansi‘ с использованием опций '-e' и '-f'.

useradd -e 2014-04-27 -f 45 mansi
Create User With Password Expiry Date

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
Create User with Full Name

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
Create a User with a Login Shell

11. Как создать пользователя с указанным домашним каталогом, оболочкой и комментарием

Следующая команда создаст пользователя ‘ravi‘ с домашним каталогом ‘/var/www/tecmint‘, оболочкой по умолчанию /bin/bash и дополнительной информацией о пользователе.

useradd -m -d /var/www/ravi -s /bin/bash -c "TecMint Owner" -U ravi
Create a User with Home Directory and Login Shell

В указанной выше команде опции '-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
Create a User with UID and GID

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
Create a User with UID and Nologin

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
Create a User with Shell and UID

15. Как создать пользователя без домашнего каталога, оболочки или группы, с комментарием

Следующая команда очень отличается от других выше объясненных команд. Здесь мы использовали опцию '-M' для создания пользователя без домашнего каталога пользователя, и опция '-N' используется для указания системе создать только имя пользователя (без группы). Опция '-r' предназначена для создания системного пользователя.

useradd -M -N -r -s /bin/false -c "Disabled TecMint Member" clayton
Create a User with NoLogin and Group

Для получения дополнительной информации и опций о «useradd», выполните команду «useradd» в терминале, чтобы увидеть доступные опции

useradd

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

Source:
https://www.tecmint.com/add-users-in-linux/