Некоторое время назад, когда я установил Ubuntu, я выбрал довольно глупое имя пользователя для своей учетной записи, которое я больше не хочу использовать.
Как мне изменить это (включая имя моего домашнего каталога и имя в терминале) без потери настроек для приложений?
Как сохранить разрешения и мои ключи для различной аутентификации (например, электронная почта, SSH, GPG и т. д.)?
Какие настройки могут быть потеряны, если я изменю свое имя пользователя?
Unix-подобные операционные системы отделяют имя пользователя от идентификатора пользователя, так что вы можете безопасно изменить имя, не затрагивая идентификатор. Все разрешения, файлы и т.д. привязаны к вашей идентификации (uid), а не к вашему имени пользователя.
Для управления всеми аспектами базы данных пользователей вы используете инструмент usermod
.
Для изменения имени пользователя (вероятно, это лучше всего делать без входа в систему):
sudo usermod -l newUsername oldUsername
Это, однако, не переименовывает домашнюю папку.
Для смены домашней папки используйте
sudo usermod -d /home/newHomeDir -m newUsername
после смены имени пользователя. Например, вы можете выйти из системы, перейти в консоль (Ctrl+Alt+F1) и sudo su -
, чтобы стать истинным корнем (в отличие от sudo -s
, где $HOME все еще является /home/yourname. ) Может быть, вам также придется сначала убить некоторые все еще запущенные процессы от этого пользователя. Для этого введите ps -u имя пользователя
, поищите соответствующий PID и убейте их с помощью kill PID-номер
.
Update: как уже упоминалось, некоторые файлы могут ссылаться на ваш старый домашний каталог. Вы можете либо сохранить сим-ссылку для обратной совместимости, например ln -s /home/newname /home/oldname
, либо изменить содержимое файла с помощью sed -i.bak 's/*oldname*/*newname*/g' *list of files*
Он создает резервную копию для каждого файла с расширением .bak.
Некоторая дополнительная информация для таких не очень опытных пользователей, как я:
.
Поскольку у меня есть только ОДИН пользовательский аккаунт (администратор), я не могу изменить имя пользователя ("вы уже вошли в систему" - ответ в TTY1 (Ctrl+Alt+F1). Чтобы обойти это:
Войдите со старыми учетными данными и добавьте нового пользователя, например, "временного" в TTY1:
sudo adduser temporary
установите пароль.
разрешите временному пользователю запускать sudo, добавив пользователя в группу sudo:
sudo adduser временное sudo.
Выход
. exit
(пока вы не получите приглашение на вход)Delete temporary user and folder:
sudo deluser temporary
судо-р/домашний/временной
В Ubuntu 13.10, 14.04, 16.04:
При получении usermod: невозможно изменить / etc / password
просто выполните следующие команды:
В консоли восстановления root запустите:
mount -o remount,rw /
Затем повторите:
usermod -l <newname> -d /home/<newname> -m <oldname>
Поскольку не все ПК имеют приложение usermod
, вы можете сделать это вручную. Начиная с root откройте / etc / passwd для редактирования:
sudo vim /etc/passwd
и измените имя пользователя в начале строки:
user:x:500:501:username:home/user:/bin/bash
на:
newuser:x:500:501:username:home/user:/bin/bash
, тогда, если вы работали с root, просто войдите в систему и если вы вошли в систему как пользователь
, выйдите из системы и повторно войдите в систему.
Конечно, вы должны исправить / etc / shadow и / etc / group также для правильной работы системы. Спасибо @ JohanBoulé
ПРИМЕЧАНИЕ : Этот подход распространен не только для ubuntu, но и для ubuntu, он будет работать, однако поиск Google покажет это событие для поиска не в Ubuntu, например для встроенного Linux
Чтобы собрать все вместе:
Установите пароль для учетной записи «root».
sudo passwd root
Выйти.
Выйти
Войдите в систему, используя учетную запись «root» и пароль, который вы ранее установили.
Измените имя пользователя и домашнюю папку на новое имя, которое вы хотите.
usermod -l <новое имя> -d / home / <новое имя> -m <старое имя>
Измените имя группы на новое, которое хотите.
groupmod -n <новая группа> <старая группа>
Заблокируйте учетную запись «root».
passwd -l root
Если вы использовали ecryptfs (зашифрованный домашний каталог). Подключите зашифрованный каталог с помощью ecryptfs-recovery-private
и отредактируйте
, чтобы отобразить ваш новый домашний каталог.
Выйдите из системы.
Выход
Нажмите Ctrl + Alt + F7 .
И теперь вы можете войти в систему под своим новым именем пользователя.
когда вы выполняете usermod -l <новое имя> -d / home / <новое имя> -m < oldname>
вы получите
useradd: невозможно изменить сообщение об ошибке / etc / passwd
, чтобы избежать этого, просто добавьте sudo -
в указанную выше команду, например
sudo -- usermod -l <newname> -d /home/<newname> -m <oldname>
и
sudo -- groupmod -n <newgroup> <oldgroup>
Перезагрузитесь в режим восстановления и перейдите в корневую оболочку ("Drop to root shell prompt")
Сначала перемонтируйте корень
mount -o remount,rw /
Чтобы изменить имя пользователя и имя домашней папки,
usermod -l <newname> -d /home/<newname> -m <oldname>
Для группы,
groupmod -n <newgroup> <oldgroup>
Ответ, указанный здесь @ karthick87, отлично работает, но вот что я бы сделал, чтобы быть в безопасности и избежать всех сбоев: