Как изменить имя пользователя в Linux?

Ответ

Для изменения имени пользователя в Linux используется команда usermod с флагом -l (login).

Основная команда:

sudo usermod -l новое_имя старое_имя

Важные условия и дополнительные шаги:

  1. Пользователь не должен быть в системе. Убедитесь, что все сессии и процессы пользователя завершены.
    sudo pkill -u старое_имя
    sudo pkill -9 -u старое_имя
  2. Домашняя директория не переименовывается автоматически. Чтобы изменить её путь, используйте:
    sudo usermod -d /home/новое_имя -m новое_имя

    Флаг -m перемещает содержимое старой домашней директории в новую.

  3. Имя первичной группы пользователя остаётся прежним. Чтобы переименовать и группу:
    sudo groupmod -n новое_имя старое_имя

Пример полного процесса переименования пользователя john в jane:

# Завершаем все процессы пользователя john
sudo pkill -u john
# Меняем логин
sudo usermod -l jane john
# Меняем имя группы
sudo groupmod -n jane john
# Перемещаем домашнюю директорию
sudo usermod -d /home/jane -m jane

Примечание: После смены имени могут потребоваться обновления в конфигурационных файлах (например, в sudoers, crontab, или настройках приложений), где использовалось старое имя.

Ответ 18+ 🔞

Э, слушай, давай разберёмся с этим делом, как переименовать юзера в Линуксе. Тут, конечно, не просто кнопку нажать, а целый ритуал провести, ёпта. Главное — не накосячить, а то потом ищешь, где что сломалось, и волнение ебать какое.

Вот смотри, основа основ — команда usermod. Ты её с флагом -l (это логин, а не хуй с горы) используешь. Выглядит просто:

sudo usermod -l новое_имя старое_имя

Но вот тут-то и начинается пиздец, чувак. Первое и главное правило: пользователь не должен быть в системе. Вообще. Ни одной сессии, ни одного запущенного процесса. Иначе получишь ошибку, и будешь потом сидеть и думать, э бошка, какого хуя не работает. Так что сначала выгоняем его нахуй:

sudo pkill -u старое_имя
sudo pkill -9 -u старое_имя # На всякий случай, если первый раз не сработал

Дальше — домашняя директория. Команда usermod -l имя поменяет, а путь /home/старое_имя так и останется. Это же пизда рулю, согласись. Чтобы это исправить, нужно отдельно сказать системе: «Э, сабака сука, перемести-ка ему все файлы в новую папку». Делается это так:

sudo usermod -d /home/новое_имя -m новое_имя

Флаг -m — это как раз «перемести содержимое». Без него создаст пустую папку, а все твои документы, фотки и конфиги останутся в старом месте, и ты потом будешь охуевать.

А ещё есть группа, понимаешь? По умолчанию у юзера есть первичная группа с таким же именем. Логин мы сменили, а группа так и осталась старое_имя. Выглядит как полупидор — имя одно, а группа другая. Чтобы не было этого бардака, переименовываем и группу:

sudo groupmod -n новое_имя старое_имя

Вот тебе полный пример, как из john сделать jane:

# Вышибаем джона из системы со всеми потрохами
sudo pkill -u john
# Меняем логин
sudo usermod -l jane john
# Меняем имя группы, чтобы не позориться
sudo groupmod -n jane john
# И наконец, переезжаем на новую квартиру в /home/jane
sudo usermod -d /home/jane -m jane

И последнее, но охуенно важное: доверия ебать ноль к тому, что всё заработает само. После всей этой движухи надо проверить конфиги. sudoers, задания в crontab, настройки всяких сервисов — везде могло засесть старое имя. Если что-то перестало работать, ищи там. Сам от себя охуеешь, когда найдешь причину.

Короче, дело это не для слабаков. Делай по шагам, смотри, что пишешь, и всё будет пучком.