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

Некоторое время назад, когда я установил 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). Чтобы обойти это:

  1. Войдите со своими старыми учетными данными и добавьте нового пользователя, например, "временный" в TTY1:

    sudo adduser temporary
    

    установить пароль.

  2. Разрешите временному пользователю запускать sudo, добавив его в группу sudo:

    sudo adduser temporary sudo
    
  3. Выйти с помощью команды exit,
  4. Вернуться к tty1: войдите с "временной" учетной записью и паролем. Измените свое имя пользователя и папку, как указано выше. exit (пока не получите приглашение для входа в систему)
  5. Вернитесь к TTY7 (Ctrl+Alt+F7), чтобы войти на GUI/ обычный экран рабочего стола и посмотреть, работает ли это.
  6. Удалить временного пользователя и папку:

    sudo deluser temporary
    sudo rm -r /home/temporary
    

Чтобы сложить все вместе:

  1. На начальном экране нажмите Ctrl+Alt+F1.
  2. Войдите под своим именем пользователя и паролем.
  3. Установите пароль для учетной записи "root".

    sudo passwd root
    
  4. Выйти.

    exit
    
  5. Войдите в систему, используя учетную запись "root" и пароль, который вы ранее установили.

  6. Измените имя пользователя и домашнюю папку на новое имя, которое вы хотите.

    usermod -l <newname> -d /home/<newname> -m <oldname>
    
  7. Измените имя группы на новое имя, которое вы хотите.

    groupmod -n <newgroup> <oldgroup>
    
  8. Блокировка учетной записи "root".

    passwd -l root
    
  9. Если вы использовали ecryptfs (зашифрованный домашний каталог). Смонтируйте зашифрованный каталог, используя ecryptfs-recover-private и редактировать <mountpoint>/.ecryptfs/Private.mnt отражать ваш новый домашний каталог.

  10. Выйти.

    exit
    
  11. Нажмите 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, прекрасно работает, но вот что я бы сделал, чтобы быть в безопасности и избежать всех сбоев:

  1. Создайте отдельную учетную запись / пользователя и убедитесь, что эта учетная запись / пользователь root обладает возможностями или войдите в систему как любой пользователь с правами root.
  2. Выйдите из системы с текущей учетной записью, а затем войдите с учетной записью, указанной в шаге 1.
  3. Убить все процессы предыдущего пользователя.
  4. Теперь следуйте инструкциям @karthick87 и измените имя пользователя, а также владельца домашнего каталога.
  5. Затем следуйте ответу @Sriraj Hebbar, чтобы изменить имя группы.
  6. Выйдите с запасным пользователем и войдите с вашим пользователем. Если вы создали дополнительного пользователя, удалите его.

Поскольку не все компьютеры имеют 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, выйти и заново войти.

Другие вопросы по тегам