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

usermod — изменить учётную запись и группы

5 мин Ubuntu 24.04 · shadow 4.13

Команда usermod меняет существующую учётную запись: группы, оболочку входа, домашний каталог, имя и блокировку.

Шпаргалка

10 команд Версия для печати
  • sudo usermod -aG adm alice добавить пользователя в группу
  • sudo usermod -rG adm alice убрать из группы (или gpasswd -d)
  • sudo usermod -G adm,www-data alice задать весь список групп заново
  • sudo usermod -g devs alice сменить основную группу
  • sudo usermod -s /bin/bash alice оболочка входа
  • sudo usermod -s /usr/sbin/nologin svc запретить вход
  • sudo usermod -L alice заблокировать пароль; -U — снять
  • sudo usermod -e 2026-12-31 alice дата, когда учётка истечёт
  • sudo usermod -d /home/al -m alice перенести домашний каталог
  • id alice проверить результат

Обзор

usermod правит запись уже существующего пользователя в /etc/passwd, /etc/shadow и /etc/group. Работает от root, при успехе не печатает ничего — результат смотрят id или getent passwd.

Чаще всего им дают группы. У пользователя одна основная группа (в /etc/passwd) и список дополнительных (в /etc/group). Ключ -G задаёт весь список дополнительных групп, -a превращает замену в добавление:

text
student@ubuntu:~$ id alice
uid=1001(alice) gid=1001(alice) groups=1001(alice),4(adm)
student@ubuntu:~$ sudo usermod -G www-data alice
student@ubuntu:~$ id alice
uid=1001(alice) gid=1001(alice) groups=1001(alice),33(www-data)

Без -a alice потеряла adm, и usermod об этом не предупредил. Добавлять одну группу — только usermod -aG.

Убрать одну группу удобнее gpasswd -d. Порядок аргументов у них обратный: usermod -aG группа пользователь, но gpasswd -d пользователь группа.

Ключи

10

Полный список — man usermod. Ключи gpasswd: -a добавить, -d убрать, -M задать список участников группы.

Ключ Что делает Пример
-aG groups Добавить в дополнительные группы, сохранив остальные. sudo usermod -aG adm alice
-G --groups groups Задать весь список дополнительных групп — без -a прежние пропадут. опасно sudo usermod -G adm,www-data alice
-g --gid group Сменить основную группу. sudo usermod -g devs alice
-s --shell shell Сменить оболочку входа (nologin — запретить вход). sudo usermod -s /usr/sbin/nologin svc
-L --lock Заблокировать пароль; вход по ключу SSH остаётся. sudo usermod -L alice
-U --unlock Снять блокировку пароля. sudo usermod -U alice
-e --expiredate YYYY-MM-DD Дата истечения учётки; пустая строка снимает срок. sudo usermod -e 2026-12-31 alice
-rG groups Убрать только из перечисленных дополнительных групп. sudo usermod -rG www-data alice
-d --home dir Новый домашний каталог; с -m перенести в него содержимое. sudo usermod -d /home/al -m alice
-l --login name Переименовать учётную запись (группа и каталог — отдельно). sudo usermod -l al alice

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

Рецепты

4

Добавить в группу и проверить, что ничего не пропало

bash
id -nG alice                       # группы до
sudo usermod -aG www-data alice
id -nG alice                       # группы после: прежние плюс www-data

Убрать из одной группы

text
student@ubuntu:~$ sudo gpasswd -d alice www-data
Removing user alice from group www-data

То же без gpasswd: sudo usermod -rG www-data alice.

Новая группа не действует в открытой сессии

Группы процесс получает при запуске. Уже открытая оболочка и запущенные службы живут со старым списком:

bash
sudo -u alice id -nG        # новый процесс — новый список
sudo systemctl restart app  # служба увидит группу после перезапуска

Самому пользователю нужно выйти и войти заново.

Временно закрыть вход

bash
sudo usermod -L alice                     # пароль не подходит
sudo usermod -s /usr/sbin/nologin alice   # и оболочки нет
sudo usermod -e 1 alice                   # или учётка истекла

-L закрывает только вход по паролю: ключ SSH продолжает работать. Открыть обратно — -U, прежняя оболочка, -e ''.

Неполадки

5

usermod: user alice is currently used by process 1234

Имя, UID или домашний каталог нельзя менять, пока пользователь работает в системе. Заверши его сессии (sudo pkill -u alice, см. kill) и повтори.

usermod: group 'devs' does not exist

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

Добавил в группу — доступа всё равно нет

Сессия и службы держат старый список групп. Проверь новым процессом (sudo -u alice id -nG), войди заново или перезапусти службу.

Пропали группы после usermod -G

Это -G без -a: список заменён. Восстанови нужные одной командой — sudo usermod -aG sudo,adm alice — и сверь с getent group.

gpasswd: user 'alice' is not a member of 'docker'

Пользователя в этой группе и не было — проверь id -nG alice. Если группа основная, gpasswd -d её не уберёт: основную меняет usermod -g.

Опасно

2

usermod -G без -a

Заменяет все дополнительные группы. Выдача одного права тихо отнимает остальные — в том числе sudo, и пользователь теряет администрирование.

Смена UID и имени

usermod -u переносит владельца только у файлов в домашнем каталоге. Файлы в других местах остаются со старым числом — найди их sudo find / -xdev -uid старый_UID. usermod -l меняет только имя: группа и домашний каталог остаются прежними.

См. также

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