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

229

Когда-то, когда я установил Ubuntu, я выбрал довольно глупое имя пользователя для своей учетной записи, которое я больше не хочу использовать.

Как мне изменить это (включая имя моего домашнего каталога и имя в терминале) без потери настроек для приложений?
Как сохранить разрешения и ключи для различной аутентификации (например, электронная почта, SSH, GPG и т. Д.)? Какие настройки могут потеряться, если я изменил свое имя пользователя?

    
задан Takkat 08.04.2011 в 10:25
источник

7 ответов

213

Unix-подобные операционные системы отделяют имя пользователя от идентификатора пользователя, поэтому вы можете безопасно изменить имя, не затрагивая идентификатор. Все разрешения, файлы и т. Д. Привязаны к вашей личности (uid), а не к вашему имени пользователя.

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

Чтобы изменить имя пользователя (возможно, лучше всего сделать это, не войдя в систему):

sudo usermod -l newUsername oldUsername

Это, однако, не переименовывает домашнюю папку.

Чтобы изменить домашнюю папку, используйте

usermod -d /home/newHomeDir -m newUsername

после изменения имени пользователя.

Например, вы можете выйти из системы, перейти на консоль ( Ctrl + Alt + F1 ) и sudo su - , чтобы стать правдой root (в отличие от sudo -s , где $ HOME все еще / home / yourname.) Возможно, вам также придется сначала убить некоторые еще запущенные процессы от этого пользователя. Для этого введите ps -u username , найдите соответствующий PID и убейте их kill PID-number .

Обновление: как упоминалось выше, некоторые файлы могут ссылаться на ваш старый домашний каталог. Вы можете сохранить символическую ссылку для обратной совместимости, e g 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 )), чтобы войти в экран графического интерфейса пользователя / обычного рабочего стола и посмотреть, работает ли это.
  6. Удалить временного пользователя и папку:

    sudo deluser temporary
    sudo rm -r /home/temporary
    
ответ дан Egil 08.04.2011 в 10:48
источник
80

Объединить все это:

  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 .

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

    
ответ дан Valentin Uveges 06.07.2013 в 11:43
23

Перезагрузитесь в режиме восстановления и перейдите в оболочку корневого приглашения («Перейти к командной строке оболочки»)

Сначала перезагрузите корень

mount -o remount,rw /

Чтобы изменить имя пользователя и имя домашней папки,

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

Для имени группы

groupmod -n <newgroup> <oldgroup>
    
ответ дан karthick87 08.04.2011 в 11:23
9

(Использование Ubuntu 13.10, 14.04, 16.04) Нажмите на значок «Системные настройки». Затем нажмите «Учетные записи пользователей». Ваша учетная запись администратора должна отображаться. Нажмите кнопку «Разблокировать». Введите свой пароль пользователя в соответствии с запросом, чтобы разрешить изменения в вашей учетной записи. После разблокировки вы можете нажать на свое старое имя пользователя, которое вы хотите изменить, и ввести новое имя пользователя для его замены. Когда вы набрали новое имя, нажмите кнопку «Заблокировать», чтобы сделать изменение постоянным. Перезапустите Ubuntu.

    
ответ дан Chicodoodoo 08.07.2014 в 00:45
2

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

В консоли консоли восстановления root:

mount -o remount,rw /

Затем запустите:

usermod -l <newname> -d /home/<newname> -m <oldname>
    
ответ дан user1511576 30.07.2014 в 14:14
0

, когда вы делаете 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>
    
ответ дан Sriraj Hebbar 06.08.2013 в 08:12
-3

Так как не все ПК имеют приложение usermod , вы можете сделать это вручную. Начиная с root 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, просто войдите в систему, и если вы вошли в аккаунт user , выйдите из него и переустановите.

    
ответ дан Малъ Скрылевъ 16.12.2014 в 14:15