С чего начать Первые шаги трек · 15 ступеней
Linux Labs

useradd — создать пользователя

5 мин Ubuntu 24.04 · shadow 4.13

Команда useradd создаёт учётную запись: домашний каталог, оболочку, группы и UID; пароль задаёт passwd.

Шпаргалка

10 команд Версия для печати
  • sudo useradd -m -s /bin/bash alice с домашним каталогом и bash
  • sudo passwd alice задать пароль — отдельный шаг
  • sudo useradd -m -s /bin/bash -G sudo bob сразу в группу sudo
  • sudo useradd -m -c 'Alice Smith' alice с полным именем
  • sudo useradd -m -u 1500 carol с заданным UID
  • sudo useradd -m -e 2026-12-31 intern учётка истечёт в эту дату
  • sudo useradd -r -s /usr/sbin/nologin -M app системный, для службы
  • id alice проверить результат
  • useradd -D значения по умолчанию
  • sudo adduser dave интерактивно (Debian/Ubuntu)

Обзор

useradd добавляет запись в /etc/passwd, /etc/shadow и /etc/group. Работает только от root, поэтому почти всегда — через sudo.

У голого useradd имя в Ubuntu неочевидные умолчания: домашний каталог не создаётся, оболочка — /bin/sh, пароля нет, и войти по паролю нельзя. Поэтому ключи -m и -s /bin/bash пишут почти всегда:

text
student@ubuntu:~$ sudo useradd -m -s /bin/bash -c 'Alice Smith' alice
student@ubuntu:~$ getent passwd alice
alice:x:1001:1001:Alice Smith:/home/alice:/bin/bash
student@ubuntu:~$ id alice
uid=1001(alice) gid=1001(alice) groups=1001(alice)

Поля строки passwd: имя, x (пароль лежит в /etc/shadow), UID, GID основной группы, комментарий, домашний каталог, оболочка. Группу с тем же именем useradd создаёт сам. UID обычных пользователей начинаются с 1000.

adduser — обёртка Debian и Ubuntu: спрашивает пароль и имя, создаёт домашний каталог, ставит bash. Удобна руками; в скриптах надёжнее useradd с явными ключами.

Ключи

11

Значения по умолчанию лежат в /etc/default/useradd и /etc/login.defs, смотреть их — useradd -D. Полный список — man useradd.

Ключ Что делает Пример
-m --create-home Создать домашний каталог и скопировать в него /etc/skel. sudo useradd -m alice
-s --shell shell Оболочка входа; без ключа в Ubuntu — /bin/sh. sudo useradd -m -s /bin/bash alice
-G --groups groups Дополнительные группы через запятую — они должны существовать. sudo useradd -m -G sudo,docker bob
-c --comment text Комментарий — обычно полное имя. sudo useradd -m -c 'Alice Smith' alice
-u --uid UID Задать UID вручную. sudo useradd -m -u 1500 carol
-r --system Системная учётка — UID ниже 1000, без домашнего каталога по умолчанию. sudo useradd -r -s /usr/sbin/nologin app
-g --gid group Основная группа вместо новой группы с именем пользователя. sudo useradd -m -g devs carol
-d --home-dir dir Путь домашнего каталога вместо /home/имя. sudo useradd -r -d /var/lib/app -M app
-M --no-create-home Не создавать домашний каталог. sudo useradd -r -M app
-e --expiredate YYYY-MM-DD Дата, после которой учётная запись перестанет работать. sudo useradd -m -e 2026-12-31 intern
-D --defaults Показать или изменить значения по умолчанию. useradd -D

Ничего не найдено. Попробуй запрос короче.

Рецепты

4

Пользователь, которому можно администрировать

bash
sudo useradd -m -s /bin/bash -G sudo bob
sudo passwd bob

Группа sudo в Ubuntu даёт право выполнять команды от root. Для уже созданного пользователя — sudo usermod -aG sudo bob (подробнее — users-groups).

Системная учётка для службы

bash
sudo useradd -r -s /usr/sbin/nologin -d /var/lib/app -M app

-r берёт UID ниже 1000, -M не создаёт домашний каталог, nologin запрещает интерактивный вход. От такого пользователя запускают службу в юните (User=app).

Пользователь с ключом SSH вместо пароля

bash
sudo useradd -m -s /bin/bash deploy
sudo install -d -m 700 -o deploy -g deploy /home/deploy/.ssh
echo 'ssh-ed25519 AAAA... deploy@laptop' | \
  sudo tee /home/deploy/.ssh/authorized_keys
sudo chown deploy:deploy /home/deploy/.ssh/authorized_keys
sudo chmod 600 /home/deploy/.ssh/authorized_keys

Пароль не задан, поэтому вход по паролю закрыт, а по ключу работает — см. ssh-keys.

Что окажется в новом домашнем каталоге

При -m в каталог копируется содержимое /etc/skel: .bashrc, .profile, .bash_logout. Положи туда общие для всех новых пользователей файлы.

Неполадки

6

useradd: Permission denied / cannot lock /etc/passwd

Команда запущена без root. Повтори через sudo useradd ….

useradd: user 'alice' already exists

Такое имя занято. Проверь getent passwd alice. Изменить существующего пользователя — usermod, удалить — userdel (см. users-groups).

useradd: group 'devs' does not exist

Группа из -G или -g должна существовать заранее: sudo groupadd devs, затем снова useradd.

Пользователь создан, но войти не может

Пароль не задан — выполни sudo passwd alice. Проверить состояние пароля: sudo passwd -S alice (буква L — заблокирован, P — задан) — см. passwd.

Вместо bash странная оболочка: нет истории и автодополнения

Пользователь создан без -s и получил /bin/sh. Смени оболочку: sudo usermod -s /bin/bash alice.

Could not chdir to home directory при входе

Создан без -m, и домашнего каталога нет. Создай его с правильным владельцем: sudo mkhomedir_helper alice или sudo install -d -m 750 -o alice -g alice /home/alice.

Опасно

1

Повторное использование UID

Если раньше на машине был пользователь с тем же UID и после него остались файлы, новый пользователь станет их владельцем. Перед useradd -u проверь, что UID свободен и на диске нет файлов с ним: sudo find / -xdev -uid 1500.

См. также

  • users-groups — изменить, удалить пользователя, управлять группами.
  • passwd — задать или заблокировать пароль.
  • sudo — дать новому пользователю права администратора.
  • chage — срок действия пароля и учётной записи.
  • nologin — учётка без интерактивного входа.
  • whoami — от чьего имени работает текущая сессия.
Загрузка…