usermod — изменить учётную запись и группы
Команда 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 превращает замену в добавление:
Без -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Убрать из одной группы
То же без gpasswd: sudo usermod -rG www-data alice.
Новая группа не действует в открытой сессии
Группы процесс получает при запуске. Уже открытая оболочка и запущенные службы живут со старым списком:
Самому пользователю нужно выйти и войти заново.
Временно закрыть вход
-L закрывает только вход по паролю: ключ SSH продолжает работать. Открыть
обратно — -U, прежняя оболочка, -e ''.
Неполадки
5usermod: 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.
Опасно
2usermod -G без -a
Заменяет все дополнительные группы. Выдача одного права тихо отнимает остальные —
в том числе sudo, и пользователь теряет администрирование.
Смена UID и имени
usermod -u переносит владельца только у файлов в домашнем каталоге. Файлы в
других местах остаются со старым числом — найди их sudo find / -xdev -uid
старый_UID. usermod -l меняет только имя: группа и домашний каталог остаются
прежними.
См. также
- users-groups — пользователи, группы и где они записаны.
- useradd — создать пользователя сразу с нужными группами.
- passwd — блокировка и состояние пароля.
- chage — сроки пароля и учётной записи.
- nologin — оболочка, которая запрещает вход.
- permissions — как группа даёт доступ к файлам.
Есть неточность? Сообщить об ошибке в статье