Мы все знаем о команде под названием «useradd» или «adduser» в Linux. Временами системный администратор Linux должен создать учетные записи пользователей с некоторыми конкретными свойствами, ограничениями или комментариями.
В Linux команда «useradd» — это утилита низкого уровня, которая используется для добавления/создания учетных записей пользователей в Linux и других Unix-подобных операционных системах. «Adduser» очень похож на команду useradd, так как является просто символической ссылкой на нее.
В некоторых других версиях Linux команда useradd может иметь слегка отличающийся функционал. Я предлагаю вам прочитать документацию, прежде чем использовать наши инструкции для создания новых учетных записей пользователей в Linux.
Когда мы запускаем команду «useradd» в терминале Linux, она выполняет следующие основные вещи:
- она редактирует файлы /etc/passwd, /etc/shadow, /etc/group и /etc/gshadow для вновь созданной учетной записи пользователя;
- создает и заполняет домашний каталог для нового пользователя;
- устанавливает разрешения и права собственности на домашний каталог.
Основной синтаксис команды:
useradd [options] username
В этой статье мы покажем вам наиболее часто используемые 15 команд useradd с их практическими примерами в Linux. Мы разделили раздел на две части: от базового до расширенного использования команды.
Часть I: Основное использование с 10 примерами
Часть II: Расширенное использование с 5 примерами
Часть I — 10 Базовых методов использования команд useradd
1. Как добавить нового пользователя в Linux
Чтобы добавить/создать нового пользователя, все, что вам нужно, это выполнить команду «useradd» или «adduser» с «username». ‘Username’ — это имя пользователя для входа в систему.
Только один пользователь может быть добавлен, и это имя пользователя должно быть уникальным (отличается от другого имени пользователя, уже существующего в системе).
Например, чтобы добавить нового пользователя с именем «sedicomm», используйте следующую команду.
[[email protected] ~]# useradd sedicomm
Когда мы добавляем нового пользователя в Linux с помощью команды «useradd», он создается в заблокированном состоянии, и чтобы разблокировать эту учетную запись пользователя, нам нужно установить пароль для этой учетной записи с помощью команды «passwd».
[[email protected] ~]# passwd sedicomm
После создания нового пользователя его запись автоматически добавляется в файл etc/etc/passwd. Файл используется для хранения информации пользователей.
Приведенная выше запись содержит набор из семи полей, разделенных двоеточиями, каждое поле имеет свое собственное значение. Давайте посмотрим, что это за поля:
- Имя пользователя: имя пользователя для входа в систему. Длина должна быть от 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 с именем пользователя. Так, например, мы видели над домашним каталогом по умолчанию для пользователя «sedicomm» — «/home/sedicomm».
Однако это действие можно изменить с помощью параметра используя -d вместе с расположением нового домашнего каталога (например, /data/projects). Например, следующая команда создаст пользователя «ganusha» с домашним каталогом «/data/projects».
[[email protected] ~]# useradd -d /data/projects/ganusha
Вы можете увидеть домашний каталог пользователя и другую информацию, связанную с пользователем, такую как идентификатор пользователя, идентификатор группы, оболочка и комментарии.
[[email protected] ~]# cat /etc/passwd | grep ganusha
ganusha:x:505:505::/data/projects/ganusha:/bin/bash
3. Создайте пользователя с определенным идентификатором пользователя
В Linux у каждого пользователя есть свой UID (уникальный идентификационный номер). По умолчанию всякий раз, когда мы создаем новые учетные записи пользователей в Linux, он назначает ID пользователей 1000, 1001, 1002 и т. д.
Но мы можем создавать пользователей с пользовательским ID по умолчанию с помощью опции -u. Например, следующая команда создаст пользователя «gosha» с пользовательским идентификатором пользователя «9999».
[email protected] ~]# useradd -u 9999 gosha
Теперь давайте проверим, что пользователь создал с определенным идентификатором пользователя (9999), используя следующую команду.
[[email protected] ~]# cat /etc/passwd | grep gosha
navin:x:9999:9999::/home/gosha:/bin/bash
ПРИМЕЧАНИЕ: Убедитесь, что значение идентификатора пользователя должно быть уникальным для всех других уже созданных пользователей в системе.
4. Создайте пользователя с определенным идентификатором группы
Точно так же каждый пользователь имеет свой собственный GID (идентификационный номер группы). Мы также можем создавать пользователей с определенными идентификаторами групп с помощью опции -g.
Здесь, в этом примере, мы добавим пользователя «tarusha» с определенным UID и GID одновременно с помощью параметров «-u» и «-g».
[[email protected] ~]# useradd -u 1000 -g 5000 tarusha
Теперь посмотрите назначенный идентификатор пользователя и идентификатор группы в файле /etc/passwd.
[[email protected] ~]# cat /etc/passwd | grep tarusha
tarusha:x:1000:5000::/home/tarusha:/bin/bash
5. Добавить пользователя в несколько групп
Параметр -G используется для добавления пользователя в дополнительные группы. Каждое имя группы отделяется запятой, без пробелов.
Здесь, в этом примере, мы добавляем пользователя «sedicomm» в несколько групп, таких как admin, webadmin и developer.
[[email protected] ~]# useradd -G admins,webadmin,developers sedicomm
Далее убедитесь, что несколько групп назначены пользователю с помощью команды id.
[[email protected] ~]# id sedicomm
uid=1001(tecmint) gid=1001(tecmint)
groups=1001(sedicomm),500(admins),501(webadmin),502(developers)
context=root:system_r:unconfined_t:SystemLow-SystemHigh
6. Добавить пользователя без домашнего каталога
В некоторых ситуациях, мы не хотим назначать домашние каталоги для пользователей из-за определенных соображений безопасности. В такой ситуации, когда пользователь входит в систему, которая только что перезапустилась, его домашний каталог будет корневым. Когда такой пользователь использует команду su, его логин-каталог будет домашним каталогом предыдущего пользователя.
Для создания пользователей без их домашних каталогов используется -M. Например, следующая команда создаст пользователя ‘shpilka‘ без домашнего каталога.
[[email protected] ~]# useradd -M shpilka
Теперь давайте проверим, что пользователь создан без домашнего каталога, с помощью команды ls.
[[email protected]~]# ls -l /home/shpilka
ls: cannot access /home/shpilka: No such file or directory
7. Создайте пользователя с датой истечения срока действия учетной записи.
По умолчанию, когда мы добавляем пользователей с помощью команды «useradd», учетная запись пользователя никогда не истекает, т. e. срок ее действия устанавливается равным 0 (означает, что срок действия бесконечный).
Тем не менее, мы можем установить дату истечения срока действия, используя опцию -e, которая устанавливает дату в формате ГГГГ-ММ-ДД. Это полезно для создания временных учетных записей на определенный период времени.
Здесь, в этом примере, мы создаем пользователя «arna» с датой истечения срока действия учетной записи — 27 апреля 2023 года, в формате ГГГГ-ММ-ДД.
[[email protected] ~]# useradd -e 2023-04-27 arna
Затем проверьте возраст учетной записи и пароль с помощью команды «chage» для пользователя «arna» после установки срока действия учетной записи.
[[email protected] ~]# chage -l arna
Last password change : Mar 28, 2020
Password expires : never
Password inactive : never
Account expires : Mar 27, 2023
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires
8. Создайте пользователя с датой истечения срока действия пароля
Параметр -f используется для определения количества дней после истечения срока действия пароля. Значение 0 дезактивирует учетную запись пользователя, как только истек срок действия пароля. По умолчанию значение срока действия пароля, установленное на -1, означает, что срок действия пароля не истекает.
Здесь, в этом примере, мы установим срок действия пароля учетной записи — 45 дней для пользователя ‘sedicomm’, используя параметры -e и -f.
[[email protected] ~]# useradd -e 2023-04-27 -f 45 sedicomm
9. Добавьте пользователя с первоначальными комментариями
Параметр -c позволяет добавлять пользовательские комментарии, такие как полное имя пользователя, номер телефона и т. д. в файл /etc/passwd. Комментарий может быть добавлен одной строкой без пробелов.
Например, следующая команда добавит пользователя «maman» и вставит его полное имя, Maman Khuraha, в поле комментария.
[[email protected] ~]# useradd -c "Maman Khuraha" maman
Вы можете увидеть ваши комментарии в файле /etc/passwd в разделе комментариев.
[[email protected] ~]# tail -1 /etc/passwd
maman:x:1006:1008:Maman Khuraha:/home/maman:/bin/sh
10. Измените оболочку входа пользователя
Иногда мы добавляем пользователей, которые не имеют ничего общего с оболочкой входа, а иногда нам требуется назначать разные оболочки для наших пользователей. Мы можем назначить разные оболочки логина для каждого пользователя с помощью опции -s.
Здесь, в этом примере, будет добавлен пользователь «sedicomm» без оболочки входа в систему, то есть «/sbin/nologin».
[[email protected] ~]# useradd -s /sbin/nologin sedicomm
Вы можете проверить назначенную пользователю оболочку в файле etc/etc/passwd.
[[email protected] ~]# tail -1 /etc/passwd sedicomm:x:1002:1002::/home/sedicomm:/sbin/nologin
Часть II — 5 Расширенное использование команд useradd
11. Добавьте пользователя с определенным домашним каталогом, оболочкой по умолчанию и пользовательским комментарием
Следующая команда создаст пользователя «ravinering» с домашним каталогом «/var/www/sedicomm», оболочкой по умолчанию /bin/bash и добавит дополнительную информацию о пользователе.
[[email protected] ~]# useradd -m -d /var/www/ravinering -s /bin/bash -c "Sedicomm Owner" -U ravinering
В приведенной выше команде опция -m -d создает пользователя с указанным домашним каталогом, а опция -s устанавливает оболочку пользователя по умолчанию, т.е. /bin/bash. Опция -c добавляет дополнительную информацию о пользователе, а опция -U создает/добавляет группу с тем же именем, что и пользователь.
12. Добавьте пользователя с домашним каталогом, пользовательской оболочкой, пользовательским комментарием и UID/GID
Команда очень похожа на приведенную выше, но здесь мы определяем оболочку как /bin/zsh и пользовательский UID и GID для пользователя tarugiva. Где -u определяет UID нового пользователя (то есть 1000), а -g определяет GID (то есть 1000).
[[email protected] ~]# useradd -m -d /var/www/tarugiva -s /bin/zsh -c "Sedicomm Technical Writer" -u 1000 -g 1000 tarugiva
13. Добавьте пользователя с домашним каталогом, без оболочки, c пользовательским комментарием и идентификатором пользователя.
Следующая команда очень похожа на две вышеупомянутые команды, единственное отличие здесь в том, что мы отключаем оболочку входа для пользователя с именем «gavirek» с пользовательским идентификатором пользователя (т.е. 1019).
Здесь опция -s добавляет оболочку по умолчанию /bin/bash, но в этом случае мы устанавливаем логин /usr/sbin/nologin. Это означает, что пользователь «gavirek» не сможет войти в систему.
[[email protected] ~]# useradd -m -d /var/www/gavirek -s /usr/sbin/nologin -c "Sedicomm Mr. Technical Writer" -u 1019 gavirek
.
14. Добавьте пользователя с домашним каталогом, оболочкой, пользовательским скелетом/комментарием и идентификатором пользователя.
Единственным изменением в этой команде является то, что мы использовали опцию -k для установки пользовательского каталога, т.е. /etc/custom.skell, а не по умолчанию /etc/skel. Мы также использовали опцию -s для определения другой оболочки, т. е. /bin/tcsh для пользователя «ravinering».
[[email protected] ~]# useradd -m -d /var/www/ravinering -k /etc/custom.skell -s /bin/tcsh -c "No Active Member of Sedicomm" -u 1027 ravinering
15. Добавьте пользователя без домашней директории, оболочки, группы и пользовательских комментариев
Эта команда сильно отличается от команд описанных выше. Здесь мы использовали опцию -M, чтобы создать пользователя без домашнего каталога пользователя, и использовали аргумент -N, который сообщает системе только о создании имени пользователя (без группы). Аргумент -r предназначен для создания системного пользователя.
[[email protected] ~]# useradd -M -N -r -s /bin/false -c "Disabled Sedicomm Member" claytongush
Для получения дополнительной информации и опций о useradd, запустите команду «useradd» на терминале, чтобы увидеть доступные опции.
Спасибо за уделенное время на прочтение статьи!
Если возникли вопросы, задавайте их в комментариях.
Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!
Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco, курсы по кибербезопасности, полный курс по кибербезопасности, курсы DevNet (программируемые сети) от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).
Курсы Cisco и Linux с трудоустройством!
- Поможем стать экспертом в сетевом администрировании и получить международные сертификаты Cisco CCNA Routing & Switching или Linux LPI.
- Предлагаем проверенную программу и учебник экспертов из Cisco Networking Academy и Linux Professional Institute, сертифицированных инструкторов и личного куратора.
- Поможем с трудоустройством и сделать карьеру. 100% наших выпускников трудоустраиваются.
- Проводим вечерние онлайн-лекции на нашей платформе или обучайтесь очно на базе Киевского офиса.
- Спросим у вас об удобном времени для практик и подстроимся: понимаем, что времени учиться мало.
- Если хотите индивидуальный график — обсудим и осуществим.
- Выставим четкие дедлайны для самоорганизации. Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
- отредактировать резюме;
- подготовиться к техническим интервью;
- подготовиться к конкурсу на понравившуюся вакансию;
- устроим на работу в Cisco по программе Cisco Incubator, New Graduate и Experienced. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.