usermod: группы, переименование, блокировка и смена оболочки

Шпаргалка по usermod в Linux: добавить в группу без потери остальных, переименовать пользователя, перенести домашнюю папку, сменить оболочку и UID, заблокировать вход. Ubuntu, Debian, AlmaLinux.

12 октября 2026 г.·3 мин чтения·usermod, users, ubuntu, debian

usermod меняет уже существующую учётную запись: добавляет в группы, переименовывает, переносит домашнюю папку, меняет оболочку, блокирует вход. Все команды ниже выполняются от root или через sudo; на Ubuntu, Debian и RHEL-системах они одинаковы, различаются только имена групп администраторов.

Если пользователя ещё нет, его сначала надо создать — см. пользователи в Linux.

1. Посмотрите текущие настройки

Перед любым изменением проверьте, что есть сейчас:

# UID, основная группа и все дополнительные группы
id username

# Строка из /etc/passwd: домашняя папка и оболочка
getent passwd username

2. Добавьте в группу

Самая частая задача — выдать права администратора или доступ к Docker.

# Группа администраторов на Ubuntu и Debian
usermod -aG sudo username

# На AlmaLinux, Rocky, CentOS, Oracle Linux администраторы в группе wheel
usermod -aG wheel username

# Несколько групп сразу, через запятую без пробелов
usermod -aG docker,www-data username

Не забывайте -a. -G без -a заменяет весь список дополнительных групп. Пользователь останется только в перечисленных и потеряет остальные, включая sudo. Для добавления всегда пишите -aG.

Новые группы действуют со следующего входа. Если пользователь сейчас подключён по SSH — пусть переподключится и проверит через id.

3. Уберите из группы

gpasswd -d username docker

usermod -rG docker username делает то же самое, но ключ -r есть не во всех версиях; gpasswd работает везде.

4. Смените основную группу

Основная группа одна, её получают все файлы, которые пользователь создаёт. Группа должна существовать заранее.

usermod -g developers username

5. Переименуйте пользователя

-l меняет только логин. Домашняя папка и личная группа остаются со старыми именами, поэтому обычно переименовывают всё вместе:

# Меняем логин olduser на newuser
usermod -l newuser olduser

# Переносим домашнюю папку под новое имя вместе с содержимым
usermod -d /home/newuser -m newuser

# Переименовываем личную группу
groupmod -n newuser olduser

Пользователь не должен быть в системе. Если у него запущены процессы, usermod откажется. Посмотрите их ps -u olduser, завершите сеансы и повторите.

6. Перенесите домашнюю папку

usermod -d /data/home/username -m username

Без -m изменится только путь в /etc/passwd, файлы останутся на старом месте.

7. Смените оболочку

# Оболочки, установленные в системе
cat /etc/shells

# bash для пользователя
usermod -s /bin/bash username

# Запрет входа в консоль, например служебному пользователю
usermod -s /usr/sbin/nologin username

8. Заблокируйте или разблокируйте

# Заблокировать вход по паролю
usermod -L username

# Снять блокировку
usermod -U username

# Отключить учётную запись полностью: дата окончания в прошлом
usermod -e 1 username

# Убрать дату окончания
usermod -e "" username

-L не закрывает вход по ключу. Блокировка пароля — это именно блокировка пароля. Если у пользователя есть SSH-ключ, он войдёт как ни в чём не бывало. Чтобы закрыть доступ целиком, используйте usermod -e 1 или удалите строки из ~/.ssh/authorized_keys.

9. Смените UID

# Номер не должен быть занят
usermod -u 1050 username

Владельца файлов в домашней папке usermod поменяет сам. Файлы в других местах останутся со старым UID — найдите и исправьте их:

# Вместо 1001 укажите старый UID
find / -xdev -user 1001 -exec chown -h username {} \;

Шпаргалка

Команда Что делает
usermod -aG группа имя Добавить в дополнительную группу
gpasswd -d имя группа Убрать из группы
usermod -g группа имя Сменить основную группу
usermod -l новое старое Переименовать
usermod -d путь -m имя Перенести домашнюю папку
usermod -s оболочка имя Сменить оболочку
usermod -L имя / -U Заблокировать / разблокировать пароль
usermod -e 1 имя Отключить учётную запись полностью
usermod -u UID имя Сменить UID

Частые ошибки

Добавил в группу, права не появились. Группы применяются при входе. Выйти и зайти заново, потом id.

group 'x' does not exist. Создайте её: groupadd имя_группы, список всех групп — getent group.

Не переименовывается. Пользователь в системе или у него есть процессы: ps -u username, завершить, повторить.

Выполнил -G без -a и потерял sudo. Верните группы той же командой с -aG. Если это был единственный администратор и sudo больше нет ни у кого — откройте консоль сервера в кабинете tanaka.host и зайдите под root.

Дальше: права доступа chmod и chown, вход по SSH-ключу.