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

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

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

404
задан 16 December 2014 в 18:48

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 имя пользователя, поищите соответствующий PID и убейте их с помощью kill PID-номер.

Update: как уже упоминалось, некоторые файлы могут ссылаться на ваш старый домашний каталог. Вы можете либо сохранить сим-ссылку для обратной совместимости, например 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 временное sudo.
    
  3. Выход с помощью команды Выход .
  4. Возврат к tty1: Вход с "временной" учетной записью пользователя и паролем. Измените имя пользователя и папку, как указано выше. exit (пока вы не получите приглашение на вход)
  5. Go back to TTY7 (Ctrl+Alt+F7) to login on the GUI/normal desktop screen and see if this works.
  6. Delete temporary user and folder:

    sudo deluser temporary
    судо-р/домашний/временной
    
389
ответ дан 16 December 2014 в 18:48

В Ubuntu 13.10, 14.04, 16.04:

  1. Щелкните значок «Параметры системы».
  2. Щелкните «Учетные записи пользователей».
  3. Ваша учетная запись администратора должна будет отображаться.
  4. Нажмите кнопку «Разблокировать».
  5. Введите свой пароль пользователя в соответствии с запросом, чтобы разрешить изменения в вашей учетной записи.
  6. После разблокировки вы можете щелкнуть свое старое имя пользователя, которое вы хотите изменить, и введите новое имя пользователя, чтобы заменить его.
  7. После ввода нового имени нажмите кнопку «Заблокировать», чтобы сделать изменение постоянным.
  8. Перезагрузите Ubuntu.
10
ответ дан 16 December 2014 в 18:48

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

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

mount -o remount,rw /

Затем повторите:

usermod -l <newname> -d /home/<newname> -m <oldname>
3
ответ дан 16 December 2014 в 18:48

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

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

ПРИМЕЧАНИЕ : Этот подход распространен не только для ubuntu, но и для ubuntu, он будет работать, однако поиск Google покажет это событие для поиска не в Ubuntu, например для встроенного Linux

-1
ответ дан 16 December 2014 в 18:48

Чтобы собрать все вместе:

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

     sudo passwd root
     
  4. Выйти.

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

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

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

     groupmod -n <новая группа> <старая группа>
     
  8. Заблокируйте учетную запись «root».

     passwd -l root
     
  9. Если вы использовали ecryptfs (зашифрованный домашний каталог). Подключите зашифрованный каталог с помощью ecryptfs-recovery-private и отредактируйте /.ecryptfs/Private.mnt, чтобы отобразить ваш новый домашний каталог.

  10. Выйдите из системы.

      Выход
     
  11. Нажмите Ctrl + Alt + F7 .

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

120
ответ дан 16 December 2014 в 18:48

когда вы выполняете usermod -l <новое имя> -d / home / <новое имя> -m < oldname> вы получите useradd: невозможно изменить сообщение об ошибке / etc / passwd , чтобы избежать этого, просто добавьте sudo - в указанную выше команду, например

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

и

sudo --  groupmod -n <newgroup> <oldgroup>
0
ответ дан 16 December 2014 в 18:48

Перезагрузитесь в режим восстановления и перейдите в корневую оболочку ("Drop to root shell prompt")

Сначала перемонтируйте корень

mount -o remount,rw /

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

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

Для группы,

groupmod -n <newgroup> <oldgroup>
29
ответ дан 16 December 2014 в 18:48

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

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

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

Похожие вопросы: