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

Некоторое время назад, когда я установил 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 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 temporarysudo rm -r /home/temporary

Чтобы собрать все это воедино:

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

  2. На стартовом экране перейдите в консольный режим tty. Нажмите Ctrl+Alt+F1 (в некоторых версиях Ubuntu это может быть Ctrl+Alt+F2 вместо этого)

  3. Войдите в систему, используя свое имя пользователя и пароль.

  4. Установите пароль для учетной записи "root".

     sudo passwd root
  5. Выйти из системы.

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

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

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

     groupmod -n <newgroup> <oldgroup>
  9. Заблокируйте учетную запись "root".

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

  11. Выйти из системы.

    exit
  12. Нажмите Ctrl+Alt+F7 чтобы вернуться к экрану входа в графический режим Ubuntu (в некоторых версиях Ubuntu это может быть Ctrl+Alt+F1).

И теперь вы можете войти в систему, используя свое новое имя пользователя.

Перезагрузитесь в режиме восстановления и перейдите к командной строке 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:

  1. Нажмите на значок "Системные настройки".
  2. Нажмите на "Учетные записи пользователей".
  3. Должна быть отображена ваша учетная запись администратора.
  4. Нажмите на кнопку "Разблокировать".
  5. Введите свой пароль пользователя в соответствии с запросом, чтобы разрешить внесение изменений в вашу учетную запись.
  6. После разблокировки вы можете нажать на свое старое имя пользователя, которое хотите изменить, и ввести новое имя пользователя, чтобы заменить его.
  7. Когда вы введете новое имя, нажмите на кнопку "Заблокировать", чтобы сделать изменение постоянным.
  8. Перезагрузите Ubuntu.

При получении usermod: can't change /etc/password просто выполните следующие команды:

В корневой консоли восстановления запустите:

mount -o remount,rw /

Затем повторите запуск:

usermod -l <newname> -d /home/<newname> -m <oldname>

Ответ, приведенный здесь @ karthick87, работает отлично, но вот что я бы сделал, просто чтобы быть в безопасности и избежать всех сбоев:

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

когда ты это сделаешь 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>

Поскольку не все линейки (однако Ubuntu должен иметь это) иметь usermod приложение, есть способ, которым вы можете сделать это вручную. С момента открытия root /etc/passwd для редактирования с помощью vim или любой другой редактор, присутствующий в системе:

sudo vim /etc/passwd

и измените имя пользователя в начале строки:

user:x:500:501:username:home/user:/bin/bash

к:

newuser:x:500:501:username:home/user:/bin/bash

затем, если вы работали с правами root, просто войдите в систему, и если вы вошли в систему как пользователь, выход из системы и повторный вход в систему.

Конечно, вы должны исправить /etc/тень, и /etc/группа также для того, чтобы система работала правильно. Спасибо @JohanBoulé

записка: Вы должны использовать этот подход осторожно, чтобы не сломать систему.

записка: Этот подход распространен не только для Ubuntu, но и для ubuntu он будет работать, однако поиск Google покажет это событие для поиска, отличного от ubuntu, например, для встроенного linux

Почему мы не можем перейти в / usr /share/applications/users.desktop >> Нажать на пользователя, для которого необходимо изменить имя. >> Нажмите “Изменить имя пользователя” >> “Изменить имя” >> Нажмите “Ок”. Я думаю, это был бы самый простой способ сменить имя пользователя, не так ли?