В Linux для добавления нового пользователя доступны две команды useadd и adduser. В чем их разница и какую из них лучше использоваться для создания пользователей в Linux?
Useradd – это встроенная команда, доступная во всех дистрибутивах Linux. Команду можно использовать для создания нового пользователя или изменения параметров существующего. Попробуйте выполнить команду:
# useradd newuser1
Эта команда просто создаст пользователя и группу newuser1. Такая команда по-умолчанию не предлагает задать пароль пользователя (такого пользователя нельзя использовать для входа в систему) и не создает домашний каталог. В качестве оболочки пользователя назначается /bin/sh.
Чтобы создать полноценного пользователя и задать пароль, нужно использовать команды:
# useradd -d /home/newuser01 -m -s /bin/bash newuser01
# passwd newuser01
Параметр -m
в этом примере нужен, чтобы команда useradd сразу создала домашний каталог пользователя.
Таким образом, useradd это низкоуровневая команда, которая без дополнительных параметров не делает ничего. Чаще всего команда useradd используется для создания служебных учётных записей, которые используются для запуска сервисов.
Команда adduser представляет собой готовый интерактивный сценарий, который создает пользователя с настройками, заданными в конфигурационном файле /etc/adduser.conf. Это самый простой и быстрый способ добавить реального пользователя.
Команда adduser недоступна в некоторых дистрибутивах Linux, иногда это мягкая ссылка на useradd. В некоторых дистрибутивах это скрипт Perl (Debian, Ubuntu и т.д.).
Выполните команду:
# adduser newuser2
Эта команда создаст пользователя newuser2, домашнюю директорию, установит UID, GID, оболочку и некоторые другие параметры в соответствии с настройками из adduser.conf. В конце предложит установить пароль. Команда adduser по сути является интерактивным бэкендом на Perl для useradd.
У Adduser есть дополнительные опции. Чаще всего используются:
--system
: добавить системного пользователя. По умолчанию системные пользователи помещаются в группу nogroup. Чтобы добавить системного пользователя в существующую группу, укажите параметр –gid или –ingroup.--home DIR
: использовать DIR в качестве домашнего каталога вместо стандартного. При необходимости будет создан каталог и скопированы файлы скелета.--shell SHELL
: задать другой SHELL вместо значения по умолчанию.--ingroup GROUP
: установить первичную группу пользователя--add_extra_groups
: добавить нового пользователя в дополнительную группу, определенную в файле конфигурации.