Как создать пользователя в Linux: useradd, пароль и права

Linux 06 октябрь 2026 admin

Как создать пользователя в Linux: useradd, пароль и права

Пользователя в Linux создают командой useradd, а пароль задают отдельно через passwd — этих двух команд достаточно для типовой задачи. Дальше разберём, как сразу получить домашнюю директорию и нужную оболочку, выдать права администратора, проверить результат и удалить учётную запись, когда она больше не нужна.

Команда для создания пользователя

Минимальный набор выглядит так: сначала создаём учётную запись, потом задаём пароль. Это две разные операции, и вторая не выполняется автоматически.

sudo useradd -m -s /bin/bash ivan
sudo passwd ivan

Ключ -m создаёт домашнюю директорию /home/ivan, ключ -s задаёт оболочку входа. Без -m результат зависит от дистрибутива и параметра CREATE_HOME в файле /etc/login.defs, поэтому лучше указывать его явно: иначе легко получить пользователя без домашней папки и без файлов вроде .bashrc.

Пока пароль не задан, в /etc/shadow стоит символ-заглушка (! или *), и вход по паролю невозможен — учётная запись фактически заблокирована. Пароль устанавливают командой passwd от имени root или через sudo.

Критерийuseraddadduser
Где доступнаПрактически везде (пакет shadow)Debian, Ubuntu; в RHEL это ссылка на useradd
Домашняя директорияТолько с ключом -mСоздаётся по умолчанию
ПарольОтдельной командой passwdСпрашивает сразу в диалоге
Формат работыВсе параметры флагамиИнтерактивный опрос
Когда удобнееСкрипты, сервисные аккаунтыРучное создание обычного пользователя

Что указать при создании: домашняя папка, оболочка, срок действия

Флаги useradd закрывают почти все сценарии, если задать их сразу, а не исправлять потом через usermod:

  • -d /путь — нестандартная домашняя директория;
  • -s /bin/bash или /bin/sh — оболочка входа; для сервисных аккаунтов ставят /usr/sbin/nologin;
  • -c "Иван Петров" — комментарий, обычно ФИО, он виден в /etc/passwd;
  • -u 1500 — конкретный UID, если он должен совпадать на нескольких серверах или с правами на NFS-ресурсе;
  • -g users -G wheel,docker — основная и дополнительные группы;
  • -e 2026-12-31 — дата, после которой вход блокируется автоматически;
  • -r — системная учётная запись с UID из системного диапазона, без домашней директории.

Срок жизни пароля настраивают через chage. Например, sudo chage -d 0 ivan заставит пользователя сменить пароль при первом входе, а sudo chage -l ivan покажет текущие параметры: дату последней смены, минимальный и максимальный срок, дату блокировки.

Если учёток много, ручной ввод неудобен: newusers читает файл в формате /etc/passwd и создаёт список пользователей за один проход, а модуль user в Ansible делает то же самое идемпотентно, то есть повторный запуск не ломает уже существующие записи. Для системных аккаунтов из пакетов есть systemd-sysusers с декларативным файлом описания. Прямая правка /etc/passwd текстовым редактором тоже работает, но это худший вариант: одна опечатка в формате строки — и вход не работает ни у кого, поэтому для таких правок используют vipw, который блокирует файл и проверяет результат.

Права: sudo и дополнительные группы

Само создание пользователя не даёт ему прав администратора. Чтобы он мог выполнять команды через sudo, его добавляют в соответствующую группу: на Debian и Ubuntu это sudo, на RHEL, Fedora и openSUSE — wheel.

sudo usermod -aG sudo ivan   # Debian, Ubuntu
sudo usermod -aG wheel ivan  # RHEL, Fedora, openSUSE
Ключ -a обязателен. Без него -G перезапишет весь список дополнительных групп, и пользователь потеряет все ранее выданные права, включая доступ к docker или общим каталогам.

Точечные правила удобнее держать в отдельном файле в каталоге /etc/sudoers.d/, например /etc/sudoers.d/ivan, со строкой ivan ALL=(ALL:ALL) ALL. Редактировать такие файлы нужно через visudo (sudo visudo -f /etc/sudoers.d/ivan): он проверяет синтаксис до сохранения, тогда как прямая правка с ошибкой способна лишить sudo всех администраторов сразу.

Полный sudo подходит не всем. На сборочных серверах, в CI и на машинах с чужими секретами разумнее выдать ограниченный набор команд через Cmnd_Alias, а не разрешать всё подряд. А для аккаунта, который просто обслуживает службу, единственно верный вариант — /usr/sbin/nologin в качестве оболочки и никаких групп администраторов.

Проверка, изменение и удаление

Убедиться, что всё создалось правильно, помогают три команды: id ivan покажет UID, GID и группы, getent passwd ivan выведет запись из базы пользователей (не только из /etc/passwd, но и из LDAP или SSSD, если они настроены), а ls -ld /home/ivan подтвердит наличие и права домашней директории.

Дальнейшие правки делают через usermod: -s меняет оболочку, -d с ключом -m переносит домашнюю директорию, -L блокирует вход, -U снимает блокировку. Блокировка без удаления полезнее увольнения: sudo passwd -l ivan закрывает вход по паролю, но оставляет файлы и права на месте.

Удаление — это sudo userdel ivan (учётная запись исчезает, домашняя директория и почта остаются) или sudo userdel -r ivan вместе с файлами. Перед удалением стоит проверить, не запущены ли от этого пользователя процессы: если процесс жив, часть файлов может остаться с прежним владельцем-UID, и на них потом никто не имеет прав. В компаниях с парком машин локальные учётные записи неудобны — их ведут централизованно в LDAP или Active Directory через SSSD, а useradd оставляют для сервисных аккаунтов.

Частые ошибки и вопросы

Чем useradd отличается от adduser? adduser в Debian и Ubuntu — это скрипт-обёртка над useradd, который сам создаёт домашнюю директорию, копирует туда /etc/skel и спрашивает пароль. В RHEL и производных adduser — просто ссылка на useradd, поэтому интерактивного диалога там не будет, и рассчитывать на него в инструкциях и скриптах для разных дистрибутивов не стоит.

Почему пользователь создан, но войти не удаётся? Три типовые причины: пароль не задан, вход заблокирован, либо оболочка указана как /usr/sbin/nologin. Состояние покажет sudo passwd -S ivan: буква P означает, что пароль установлен, L — что вход заблокирован.

Можно ли создать пользователя без домашней директории? Да, для этого -m не указывают. Для сервисного аккаунта это норма: ему нужны только доступ к файлам и запуск процесса. Для живого человека — плохо: не будет ни .bashrc, ни каталога .ssh для ключей, ни места под кеш.

Как создать сразу несколько пользователей? Циклом по списку в скрипте или через newusers с подготовленным файлом. Второй способ безопаснее: он обрабатывает весь список одной операцией и возвращает ошибку, если строка заполнена неверно.

Для обычного рабочего аккаунта начинайте с adduser на Debian и Ubuntu или с useradd -m -s /bin/bash на остальных системах, сразу задайте пароль и добавьте пользователя в нужную группу с ключом -aG. Сервисным учёткам ставьте /usr/sbin/nologin, не выдавайте sudo и не создавайте домашнюю директорию без необходимости. Дальше проверяйте результат через id и getent, меняйте параметры через usermod и удаляйте через userdel -r, заранее решив, что делать с оставшимися файлами.

Редакция «ИТ Фишки»
Качественные материалы о софте, технологиях и гаджетах
Ссылка на материал
Поделиться:
Похожие публикации
Комментарии (0)

© Copyright © 2026. Все права защищены.