Изменение информации пользователя в Linux
TL;DR
usermod и chfn — стандартные утилиты для изменения имени пользователя, UID и отображаемого имени в Linux. Для переименования домашней папки используйте usermod с ключами -d и -m. Все команды требуют прав суперпользователя; после изменений проверьте владельцев файлов и службы, зависящие от учётных записей.

Linux — многопользовательская операционная система. С этой особенностью приходит обязанность управлять каждой учётной записью на системе: назначать права, следить за уникальностью UID и имён пользователя, поддерживать актуальность домашней папки и контактной информации.
Если нужно изменить данные конкретного пользователя, прямое редактирование /etc/passwd не рекомендуется — это рискованно и может привести к несовместимостям. Вместо этого используйте стандартную утилиту usermod и дополнительные инструменты (chfn, vipw, chown). В этой статье показано, как поменять имя пользователя, UID, домашнюю папку и отображаемое имя, плюс приведён чек‑лист, возможные ошибки, критерии приёмки и рекомендации по безопасности.
Изменение имени пользователя в Linux
Информация о пользователях хранится в /etc/passwd. Для изменения имени используйте usermod с флагом -l. Для выполнения команд вам нужны права root (через sudo или прямой вход под root).
Пример поменять имя makeuseof на muo:
sudo usermod -l muo makeuseofВажно: ключ -l меняет только логическое (входное) имя пользователя в базе учётных записей; домашний каталог и файлы остаются с прежними путями и владельцами, если вы явно не попросите изменить их.
Важно:
- Не выполняйте эти операции, если пользователь активно залогинен и выполняет процессы, связанные с его SID/UID: лучше работать из режима single-user или убедиться, что пользователь не в системе.
Переименование домашней папки
По умолчанию usermod не меняет путь домашней папки. Чтобы одновременно поменять имя пользователя и переместить домашнюю папку, используйте -d и -m:
sudo usermod -d /home/muo -m muoОпции:
- -d /home/newdir — установить новый путь домашней директории;
- -m — переместить содержимое старой директории в новую.
После выполнения проверьте наличие новой папки и владельца:
ls -ld /home/muo
stat -c "%U %G" /home/muoЕсли в системе есть ссылки, службы или crontab, указывающие на старый путь, обновите их.
Назначение нового UID пользователю
UID — это ненегативное целое число, идентифицирующее учётную запись. В большинстве дистрибутивов системные UID занимают диапазон 0–99 (или 0–999), а обычные пользователи получают UID, начиная примерно с 1000. (Проверяйте политику вашего дистрибутива.)
Чтобы сменить UID:
sudo usermod -u 1500 usernameПосле изменения usermod обновит владельцев файлов в домашней директории для нового UID. Файлы вне /home не меняются автоматически; их можно поправить вручную:
sudo find / -user OLDUID -exec chown -h NEWUID {} +Или по более безопасной схеме, сначала сопоставьте файлы с помощью -user OLDUID и затем изменяйте владельцев селективно.
Изменение отображаемого имени
В /etc/passwd хранится не только логин, но и так называемая «finger information» — отображаемое имя, телефон и т.д. Изменить отображаемое имя можно двумя способами.
С помощью usermod:
sudo usermod -c "Имя Фамилия" usernameС помощью chfn (изменяет поля finger):
sudo chfn -f "Имя Фамилия" usernamechfn позволяет редактировать отдельные поля: полное имя, рабочий телефон, домашний телефон и т.д.
Практические рекомендации по управлению учётными записями
- Всегда создавайте резервную копию /etc/passwd, /etc/shadow и /etc/group перед массовыми изменениями.
- Проверяйте, что пользователь не запущен (ps -u username) перед переименованием.
- Для автоматизированных изменений используйте скрипты с подтверждением и логированием.
- Обновляйте сопутствующие службы (LDAP, NFS, Samba, PAM), если они зависят от имён или UID.
Когда изменения могут не сработать
- Если пользователь активно залогинен и имеет процессы, изменения имени могут привести к рассинхронизации процессов и записи логов.
- Если система использует централизованную аутентификацию (LDAP, NIS), локальная команда usermod не изменит удалённую запись.
- Если папки или файлы на NFS принадлежат по UID, а не по имени, нужно синхронизировать UID между серверами.
Альтернативы в случаях отказа:
- Редактирование через vipw/vigr (безопасный редактор для /etc/passwd и /etc/group).
- Удаление и повторное создание пользователя (userdel + useradd) с сохранением файлов — рискованно и требует миграции прав и файлов.
Чек‑лист администратора перед изменением
- Сделать бэкап: /etc/passwd, /etc/shadow, /etc/group.
- Убедиться, что пользователь не в системе: ps -u username или pkill -u username –dry-run.
- Заблокировать вход пользователя на время работ: sudo usermod -L username.
- Выполнить команду изменений (usermod / chfn).
- Переместить домашнюю папку и проверить права: ls -la /home/newdir.
- Исправить владельцев вне /home с помощью find + chown.
- Разблокировать учётную запись: sudo usermod -U username.
- Проверить службы, cron, sudoers, NFS, Samba.
Критерии приёмки
- Новое имя пользователя отображается в /etc/passwd.
- Домашняя папка существует в новом месте и принадлежит пользователю.
- UID совпадает с ожидаемым: uid=$(id -u username).
- Пользователь может войти и запускать свои задачи.
- Нет сломанных записей в crontab, sudoers или сервисах, привязанных к старому имени.
Тесты и команды для проверки (acceptance)
getent passwd username
id username
ls -ld /home/username
sudo -u username whoami
sudo find / -uid NEWUID -print | head -n 20Модель принятия решений (Mermaid)
flowchart TD
A[Нужно изменить информацию пользователя?] --> B{Аутентификация централизована?}
B -- Нет --> C[Использовать usermod/chfn локально]
B -- Да --> D[Обновить запись в LDAP/NIS]
C --> E{Нужно ли переименовать домашнюю папку?}
E -- Да --> F[usermod -d /home/new -m]
E -- Нет --> G[Просто usermod -l]
D --> H[Синхронизация UID между серверами]Риски и смягчающие меры
- Риск: потеря доступа из-за ошибки в /etc/passwd. Смягчение: сохраняйте резервную копию и проверяйте изменения командой
getent passwd. - Риск: расхождение UID на NFS/SMB. Смягчение: согласовать UID с администраторами других хостов или использовать совпадающую базу идентификаторов.
- Риск: сервисы, привязанные к старому имени. Смягчение: сканировать конфиги и логи на упоминания имени и обновлять их.
Короткое руководство для типовой операции (SOP)
- Войти как root или через sudo.
- Сделать бэкап важных файлов конфигурации.
- Блокировать пользователя: sudo usermod -L username.
- Выполнить: sudo usermod -l newname -d /home/newname -m newname
- При необходимости изменить UID: sudo usermod -u NEWUID newname
- Проверить и исправить права для файлов вне /home.
- Разблокировать пользователя и попросить выполнить тестовый вход.
Однострочные определения (глоссарий)
- usermod — утилита изменения учётной записи пользователя.
- chfn — утилита для редактирования «finger» информации (полное имя, телефоны).
- UID — числовой идентификатор пользователя.
- /etc/passwd — файл с основной информацией о пользователях.
Замечания по безопасности и конфиденциальности
- Храните журналы изменений и доступ к командами управления учётными записями под контролем (auditd, sudo log).
- Не публикуйте реальную личную контактную информацию без согласия владельца учётной записи.
- При централизованной аутентификации в корпоративной среде изменения должны проходить через утверждённые процессы и аудит.
Краткое резюме
- Используйте usermod для изменения имени и UID; добавьте -d -m для переезда домашней папки.
- chfn удобен для редактирования отображаемого имени и контактных полей.
- Всегда выполняйте резервное копирование и проверяйте владельцев файлов после изменений.
Важно: перед массовыми изменениями тестируйте процедуру на отдельной тестовой системе.