Как я могу изменить свое имя пользователя?
Некоторое время назад, когда я установил Ubuntu, я выбрал довольно глупое имя пользователя для своей учетной записи, которое я больше не хочу использовать.
Как я могу изменить это (включая имя моего домашнего каталога и имя в терминале) без потери настроек для приложений?
Как мне сохранить разрешения и мои ключи для различных аутентификаций (например, электронная почта, SSH, GPG и т. Д.)?
Какие настройки могут быть потеряны, если я изменю свое имя пользователя?
8 ответов
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 username
ищи соответствующий PID и убей их kill PID-number
,
Обновление: как уже упоминалось, некоторые файлы могут ссылаться на ваш старый домашний каталог. Вы можете оставить символическую ссылку для обратной совместимости, например 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 temporary sudo
- Выйти с помощью команды
exit
, - Вернуться к tty1: войдите с "временной" учетной записью и паролем. Измените свое имя пользователя и папку, как указано выше.
exit
(пока не получите приглашение для входа в систему) - Вернитесь к TTY7 (Ctrl+Alt+F7), чтобы войти на GUI/ обычный экран рабочего стола и посмотреть, работает ли это.
Удалить временного пользователя и папку:
sudo deluser temporary sudo rm -r /home/temporary
Чтобы сложить все вместе:
- На начальном экране нажмите Ctrl+Alt+F1.
- Войдите под своим именем пользователя и паролем.
Установите пароль для учетной записи "root".
sudo passwd root
Выйти.
exit
Войдите в систему, используя учетную запись "root" и пароль, который вы ранее установили.
Измените имя пользователя и домашнюю папку на новое имя, которое вы хотите.
usermod -l <newname> -d /home/<newname> -m <oldname>
Измените имя группы на новое имя, которое вы хотите.
groupmod -n <newgroup> <oldgroup>
Блокировка учетной записи "root".
passwd -l root
Если вы использовали ecryptfs (зашифрованный домашний каталог). Смонтируйте зашифрованный каталог, используя
ecryptfs-recover-private
и редактировать<mountpoint>/.ecryptfs/Private.mnt
отражать ваш новый домашний каталог.Выйти.
exit
Нажмите Ctrl+Alt+F7.
И теперь вы можете войти под своим новым именем пользователя.
Перезапустите в режиме восстановления и перейдите в оболочку с приглашением root ("Запрос на удаление оболочки root")
Сначала перемонтируйте корень
mount -o remount,rw /
Чтобы изменить имя пользователя и имя домашней папки,
usermod -l <newname> -d /home/<newname> -m <oldname>
Для имени группы
groupmod -n <newgroup> <oldgroup>
(Использование Ubuntu 13.10, 14.04, 16.04) Нажмите на значок "Настройки системы". Затем нажмите "Учетные записи пользователей". Ваша учетная запись администратора должна отображаться. Нажмите на кнопку "Разблокировать". Введите пароль пользователя в соответствии с запросом, чтобы разрешить изменения в вашей учетной записи. После разблокировки вы можете нажать на старое имя пользователя, которое хотите изменить, и ввести новое имя пользователя, чтобы заменить его. Когда вы ввели новое имя, нажмите кнопку "Блокировка", чтобы сделать изменение постоянным. Перезапустите Ubuntu.
При получении usermod: can't change /etc/password
просто запустите следующие команды:
В консоли восстановления root запустите:
mount -o remount,rw /
Затем перезапустите:
usermod -l <newname> -d /home/<newname> -m <oldname>
Когда вы делаете usermod -l <newname> -d /home/<newname> -m <oldname>
ты получишь useradd: can't change /etc/passwd
сообщение об ошибке, чтобы избежать этого просто добавьте sudo --
вышеупомянутая команда, как
sudo -- usermod -l <newname> -d /home/<newname> -m <oldname>
а также
sudo -- groupmod -n <newgroup> <oldgroup>
Ответ, указанный здесь @karthick87, прекрасно работает, но вот что я бы сделал, чтобы быть в безопасности и избежать всех сбоев:
- Создайте отдельную учетную запись / пользователя и убедитесь, что эта учетная запись / пользователь root обладает возможностями или войдите в систему как любой пользователь с правами root.
- Выйдите из системы с текущей учетной записью, а затем войдите с учетной записью, указанной в шаге 1.
- Убить все процессы предыдущего пользователя.
- Теперь следуйте инструкциям @karthick87 и измените имя пользователя, а также владельца домашнего каталога.
- Затем следуйте ответу @Sriraj Hebbar, чтобы изменить имя группы.
- Выйдите с запасным пользователем и войдите с вашим пользователем. Если вы создали дополнительного пользователя, удалите его.
Поскольку не все компьютеры имеют usermod
Приложение вы можете сделать это вручную. По состоянию на корень открыт /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, просто войдите, и если вы вошли в user
, выйти и заново войти.