Почему этот вопрос важен для разработчиков и фриланс‑специалистов

Работая с виртуальными серверами, контейнерами или локальными тестовыми средами, вам часто требуется быстро добавить нового системного пользователя. Неправильный выбор команды может привести к неожиданным настройкам домашнего каталога, группы или прав доступа, что в свою очередь усложнит дальнейшую автоматизацию и безопасность проекта.

1. Что такое useradd

useradd - это штатный бинарный файл, поставляемый практически со всеми дистрибутивами Linux (часто входит в пакет shadow).
Он читает глобальные параметры из файлов /etc/login.defs и /etc/default/useradd и на их основе создаёт учётную запись.

Характеристики:

  • Низкоуровневый: работает напрямую с системными файлами /etc/passwd, /etc/shadow.
  • Универсальный: одинаково функционирует в большинстве дистрибутивов, включая RHEL, CentOS, Fedora, openSUSE.
  • Опции задаются полностью в командной строке; если что‑то не указано, берётся значение по умолчанию из конфигураций.

Пример базового вызова:

sudo useradd -m -s /bin/bash newuser

-m - создать домашний каталог, -s - задать оболочку.

2. Что такое adduser

adduser - оболочка над useradd. В разных семействах Linux она реализована по‑разному.

2.1. Debian‑производные (Ubuntu, Linux Mint, Kali и др.)

Здесь adduser - скрипт на Perl, который внутри вызывает useradd.
Он ориентирован на человека, а не на скрипт:

  • выводит понятные сообщения о назначенных UID/GID, месте домашнего каталога;
  • интерактивно запрашивает пароль, полное имя и другие параметры, если их не задали в командной строке;
  • автоматически создаёт пользовательскую группу с тем же именем, что и пользователь.

Пример интерактивного запуска:

sudo adduser newuser

После нескольких вопросов система создаст учётную запись со всеми типичными настройками.

2.2. Red Hat‑производные (RHEL, CentOS, Fedora)

В этих системах adduser - обычная символьная ссылка на бинарник useradd. Функционально они полностью совпадают, и выбор команды не влияет на результат.

2.3. openSUSE

В официальных репозиториях adduser отсутствует, поэтому используется только useradd.

3. Как решить, какую команду применять

Дистрибутив Что доступно Когда стоит предпочесть adduser
Debian, Ubuntu, Mint useradd + adduser (Perl‑скрипт) Нужно быстро создать учётку без изучения всех флагов useradd.
RHEL, CentOS, Fedora useradd, adduser - ссылка Любая команда, предпочтительно useradd для согласованности с другими скриптами.
openSUSE только useradd Использовать useradd.

Практический совет: если вы пишете скрипт, который будет работать на разных серверах, лучше явно вызывать useradd с полным набором параметров. Если же задача одноразовая и вы работаете в Debian‑семье, adduser сэкономит время и уменьшит количество ошибок.

4. Примеры использования в реальных сценариях

4.1. Автоматическое создание пользователя в CI/CD‑pipeline

#!/bin/bashUSERNAME=$1sudo useradd -m -s /bin/bash "$USERNAME"echo "User $USERNAME created"

Почему useradd: скрипт запускается в разных окружениях (Ubuntu‑builder, CentOS‑runner), где adduser может вести себя иначе.

4.2. Быстрый ручной ввод на локальном ноутбуке (Ubuntu)

sudo adduser devops

Плюс adduser: интерактивный ввод пароля, указание полного имени и дополнительные вопросы упрощают процесс для новичка.

5. Лучшие практики при работе с пользователями

  1. Проверяйте наличие домашней директории (-m в useradd или автоматическое создание в adduser).
  2. Явно задавайте оболочку (-s /bin/bash) - иначе может быть назначена /bin/sh, что не всегда удобно.
  3. Создавайте отдельную группу (-g или adduser делает это автоматически).
  4. Не забывайте ставить пароль через passwd username после создания учётки, если нужен интерактивный вход.
  5. Документируйте параметры в своих playbook‑ах или скриптах, чтобы коллеги быстро понимали, какие флаги используются.

6. Выводы

  • useradd - базовый, всегда присутствующий в системе инструмент; идеально подходит для скриптов и кросс‑дистрибутивных решений.
  • adduser - надстройка, предоставляющая более дружелюбный интерфейс в Debian‑производных и просто псевдоним в Red Hat‑семье.
  • Выбор зависит от контекста: ручная работа → adduser; автоматизация → useradd.

Овладев обоими вариантами, вы сможете без проблем управлять пользователями в любой Linux‑среде, сохраняя безопасность и предсказуемость настроек.

Помните: при переходе между дистрибутивами всегда читайте man useradd и man adduser - небольшие различия в параметрах могут влиять на конечный результат.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *