Некоторое время назад, когда я установил Ubuntu, я выбрал довольно глупое имя пользователя для своей учетной записи, которое я больше не хочу использовать.
Как я могу изменить это (включая имя моего домашнего каталога и имя в терминале) без потери настроек для приложений?
Как мне сохранить разрешения и мои ключи для различных аутентификаций (например, электронная почта, SSH, GPG и т. Д.)?
Какие настройки могут быть потеряны, если я изменю свое имя пользователя?
permissions
keyrings
gnupg
ssh
user-profile
Takkat
источник
источник
Ответы:
Unix-подобные операционные системы отделяют имя пользователя от имени пользователя, поэтому вы можете смело менять имя, не влияя на идентификатор. Все разрешения, файлы и т. Д. Привязаны к вашей личности (uid), а не к вашему имени пользователя.
Чтобы управлять каждым аспектом пользовательской базы данных, вы используете
usermod
инструмент.Чтобы изменить имя пользователя (вероятно, лучше сделать это без входа в систему):
Это, однако, не переименовывает домашнюю папку.
Чтобы изменить домашнюю папку, используйте
после того, как вы изменили имя пользователя.
Например, вы можете выйти из системы, перейти на консоль ( Ctrl+ Alt+ F1) и
sudo su -
стать истинным пользователем root (в отличие от того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, добавив его в группу sudo:
exit
.exit
(пока вы не получите приглашение для входа в систему)Удалить временного пользователя и папку:
источник
grep -IRFl /home/username ~
и вы увидите, сколько ссылок на ваш домашний каталог хранится там./home/.ecryptfs/oldusername/.ecryptfs/Private.mnt
чтобы указать новую домашнюю папку, иначе вы не сможете войти через Unity.sudo usermod -d /home/edge -m edge
Выход:usermod: Directory /home/empedokles could not be renamed in /home/edge
т.е. шаг 4 не будет работать.sudoers
с обычнымnano
. Всегда используйтеvisudo
.Чтобы сложить все вместе:
Установите пароль для учетной записи «root».
Выйти.
Войдите в систему, используя учетную запись «root» и пароль, который вы ранее установили.
Измените имя пользователя и домашнюю папку на новое имя, которое вы хотите.
Измените имя группы на новое имя, которое вы хотите.
Блокировка учетной записи «root».
Если вы использовали ecryptfs (зашифрованный домашний каталог). Смонтируйте зашифрованный каталог с помощью
ecryptfs-recover-private
и отредактируйте,<mountpoint>/.ecryptfs/Private.mnt
чтобы отразить ваш новый домашний каталог.Выйти.
Нажмите Ctrl+ Alt+ F7.
И теперь вы можете войти под своим новым именем пользователя.
источник
usermod -l
того, как вы получитеuser <oldname> is currently used by process <processno>
, вы можете найти этот процесс (возможно, демон или tmux / screen), используяps aux | grep <processno>
. Возможно, вы захотите изящно остановить этот процесс, в противном случае вы можетеkill <processno>
.Перезапустите в режиме восстановления и перейдите в оболочку с приглашением root («Запрос на удаление оболочки root»)
Сначала перемонтируйте корень
Чтобы изменить имя пользователя и имя домашней папки,
Для имени группы
источник
usermod -l <newname> -d /home/<newname> -m <oldname>
это, яusermod: user oldusername is currently used by process 3170
получаю ошибку, и если я все равно убиваю процесс, он дает мне ту же ошибку. используя Ubuntu 13.10На Ubuntu 13.10, 14.04, 16.04:
источник
При получении
usermod: can't change /etc/password
просто запустите следующие команды:В консоли восстановления root запустите:
Затем перезапустите:
источник
Ответ, указанный здесь @ karthick87, прекрасно работает, но вот что я бы сделал, чтобы быть в безопасности и избежать всех сбоев:
источник
когда вы это сделаете,
usermod -l <newname> -d /home/<newname> -m <oldname>
вы получитеuseradd: can't change /etc/passwd
сообщение об ошибке, чтобы избежать этого, просто добавьтеsudo --
команду выше, кака также
источник
Поскольку не на всех компьютерах есть
usermod
приложение, вы можете сделать это вручную. С правами root/etc/passwd
можно редактировать:и измените имя пользователя в начале строки:
чтобы:
затем, если вы работали с root, просто войдите в систему, и если вы вошли в систему
user
, выйдите из системы и перезапустите.источник
usermod
команду), и пароль пользователя больше не принимается.usermod
ваша установка нарушена, поскольку она является частьюpasswd
пакета, что необходимо .