Изменение информации пользователя в Linux с помощью usermod

Linux — многопользовательская система. Это требует управления учётными записями: уникальные имена, идентификаторы и права доступа. Прямое редактирование /etc/passwd возможно, но рискованно. Для большинства задач лучше использовать утилиты управления пользователями: usermod, chfn, passwd и сопутствующие инструменты.
В этой статье показаны команды для изменения имени пользователя, домашнего каталога, UID и отображаемого имени, а также приведён чек-лист и методика тестирования после изменений.
Смена имени пользователя в Linux
Информация о пользователях хранится в /etc/passwd. Вместо прямого редактирования файла рекомендуется применять usermod. Для выполнения команд нужны права суперпользователя (root) или sudo.
Команда для переименования учётной записи:
usermod -l newusername oldusernameПример: переименовать makeuseof в muo:
sudo usermod -l muo makeuseofПосле выполнения проверьте, что новая запись появилась в /etc/passwd:
getent passwd muoВажно: эта команда изменяет только логин (username). Домашний каталог и другие ссылки останутся прежними, если явно не указать их изменить.
Переименование домашнего каталога
Если вы хотите, чтобы путь домашнего каталога соответствовал новому имени, используйте флаг -d вместе с -m — это переместит содержимое в новый каталог и обновит запись в /etc/passwd:
sudo usermod -d /home/muo -m muoПроверка:
ls -ld /home/muo
getent passwd muoЕсли домашний каталог располагается на сетевом хранилище (NFS) или у пользователя есть процессы, которые держат файлы, перемещение может не сработать. В таком случае остановите процессы пользователя или выполните перенос вручную с последующим обновлением записи в /etc/passwd.
Назначение нового UID
UID — это неотрицательное целое число, которое однозначно идентифицирует пользователя. Диапазон 0–99 обычно зарезервирован для системных пользователей. Чтобы дать пользователю новый UID, используйте:
sudo usermod -u Пример:
sudo usermod -u 1050 muoПосле изменения UID файлы в /home пользователя автоматически будут переназначены на нового владельца (usermod пытается обновить владельца в домашнем каталоге). Файлы вне /home не меняются автоматически — их нужно найти и исправить вручную:
# найти файлы с прежним UID и поменять владельца на новый UID
sudo find / -xdev -uid OLD_UID -exec chown NEW_UID {} +Для безопасности сначала выполните поиск без chown, чтобы убедиться, какие файлы будут затронуты.
Изменение отображаемого имени пользователя
В /etc/passwd есть поле «GECOS» (finger information) — оно содержит отображаемое имя, отдел и телефоны. Отображаемое имя можно менять двумя способами.
С помощью usermod
sudo usermod -c "First Last" usernameПример:
sudo usermod -c "Make UseOf" muoС помощью chfn
sudo chfn -f "First Last" usernameПример:
sudo chfn -f "Make UseOf" makeuseofchfn удобен для интерактивного редактирования нескольких полей GECOS.
Практическая методика: шаги перед, во время и после изменений
Краткая методика действий для безопасной смены имени/UID/домашнего каталога:
- Подготовка
- Сделать резервную копию /etc/passwd, /etc/shadow и /etc/group:
sudo cp /etc/passwd /etc/passwd.bak
sudo cp /etc/shadow /etc/shadow.bak
sudo cp /etc/group /etc/group.bak- Уведомить пользователя и при возможности запросить выход из сессий.
- Проверить, не управляется ли учётная запись извне (LDAP, AD, SSSD, NIS).
Выполнение
- Переименовать логин: usermod -l
- Переименовать домашний каталог: usermod -d -m
- Поменять UID: usermod -u и затем скорректировать владельцев вне /home
- Обновить sudoers/cron/ACLs, где встречается старое имя или UID
Проверка
- getent passwd
- id
- ls -lR /home/
- ps -u
(убедиться, что нет старых процессов) - проверить доступы, sudo, ssh-клЮчи
- getent passwd
Откат (если нужно)
- Восстановить файлы из резервной копии
- Вернуть старый UID/имя
Когда команды не сработают: типичные причины и контрмеры
- Учётная запись управляется LDAP/AD/SSSD: изменения в /etc/passwd будут перезаписаны. Контрмера: вносите изменения в систему управления идентичностью (LDAP/AD).
- Новое имя или UID уже заняты: сначала освободите конфликтующие записи или выберите другой идентификатор.
- Пользователь активно вошёл в систему: завершите сессии (pkill -u), затем повторите операцию.
- Домашний каталог — смонтированное сетевое хранилище с ограничениями: выполните перемещение через администраторские инструменты хранилища.
Альтернативы и дополнительные инструменты
- vipw/vigr — безопасное редактирование /etc/passwd и /etc/group с блокировкой.
- userdel + useradd — удалить и заново создать пользователя с нужными параметрами (опасно — потеря данных без предварительного сохранения).
- GUI-утилиты (в дистрибутивах с рабочим столом) для управления пользователями.
- ldapmodify — если ваша инфраструктура использует LDAP/AD.
Критерии приёмки
- Учетная запись появляется в /etc/passwd с новым именем/UID.
- id
показывает ожидаемый UID и группы. - Домашний каталог доступен и принадлежит пользователю.
- Сохранены и обновлены записи sudoers, cron, ACLs и сервисные зависимости.
- Нет «зависших» процессов старого пользователя.
Чек-лист для администратора
Перед изменениями
- Сделать резервные копии /etc/passwd, /etc/shadow, /etc/group
- Проверить внешнее управление (LDAP/AD)
- Сообщить пользователю и остановить его процессы
Во время изменений
- Выполнить usermod с нужными флагами
- Перенести домашний каталог при необходимости
- Обновить права на файлы вне /home
После изменений
- Проверить id, getent, ls -ld
- Тестировать вход по SSH/GUI и sudo
- Обновить документацию/мониторинг
Безопасность и рекомендации
- Всегда работайте под root или через sudo. Неправильные действия в /etc/passwd могут привести к невозможности входа в систему.
- Перед изменениями делайте резервные копии конфигурационных файлов.
- Если у пользователя есть ключи SSH, проверьте пути и права доступа после переименования.
- При смене UID убедитесь, что файлы вне /home также обновлены — иначе будут проблемы с доступом.
Короткая методика проверки (команды)
# проверить запись в passwd
getent passwd muo
# проверить UID и группы
id muo
# проверить домашний каталог
ls -ld /home/muo
# найти файлы с прежним UID
sudo find / -xdev -uid OLD_UIDГлоссарий
- UID — уникальный идентификатор пользователя в системе.
- GECOS — поле в /etc/passwd, содержащее отображаемое имя и контактные данные.
- usermod — команда для изменения параметров существующей учётной записи.
- chfn — команда для редактирования полей GECOS.
Заключение
Команда usermod — основной инструмент администратора для изменения логина, UID и домашнего каталога пользователя в Linux. Для изменения отображаемого имени удобно использовать usermod -c или chfn. Перед операциями убедитесь в наличии резервных копий, проверьте внешние источники учётных записей и скорректируйте права на файлы вне домашнего каталога. Следуйте чек-листу и выполните проверку после изменений, чтобы избежать проблем с доступом.
Важно: если ваша инфраструктура использует централизованную систему управления пользователями (LDAP/AD), изменения нужно делать в ней, а не локально.
Summary: следуйте процедуре подготовки, аккуратно применяйте usermod, проверяйте результаты и фиксируйте изменения в документации.
Похожие материалы
Установка Windows 10 в KVM на Linux
Как оценить срок службы SSD и продлить его
Double Tap на старых Apple Watch — как включить
Как перенести секретные чаты Telegram на Android
Как разобрать и почистить контроллер Xbox One