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


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

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


262
2018-04-08 08:25


происхождения




ответы:


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,

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

258
2018-04-08 08:48



Это, к сожалению, неверно для разных файлов конфигурации в $ HOME, попробуйте запустить что-то вроде grep -IRFl /home/username ~ и вы увидите, сколько ссылок на ваш домашний каталог хранится там. - arrange
Было простое исправление. Просто нужно было использовать редактор учетных записей пользователей в единстве, а затем перезапустить. - Steve Koch
Для тех, у кого есть зашифрованная домашняя папка, вам придется редактировать /home/.ecryptfs/oldusername/.ecryptfs/Private.mnt чтобы указать на новую домашнюю папку, иначе вы не сможете войти в систему через Unity. - raphael
sudo usermod -d /home/edge -m edge выходы: usermod: Directory /home/empedokles could not be renamed in /home/edge то есть шаг 4 не будет работать. - empedokles
@JTC никогда редактировать sudoers с равнинной nano, Всегда используйте visudo, - styrofoam fly


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

  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,

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


90
2017-07-06 09:43



Если после usermod -l  вы получаете user <oldname> is currently used by process <processno>, вы можете найти этот процесс (возможно, демон или tmux / screen), используя ps aux | grep <processno>, Возможно, вы захотите изящно прекратить этот процесс, иначе вы можете kill <processno>, - RedPixel
Спасибо, что поставили этот комментарий вместе. Это было очень полезно. Две вещи, которые можно было бы упомянуть. После шага 4 я перезагрузился, поэтому на этапе 6 я не получу сообщения об ошибках. Также, после завершения этого процесса, файл / etc / passwd будет иметь и комментарий ID, соответствующий старому имени пользователя. Это заставит экран входа в систему отобразить старое имя входа. Я не мог найти достойный способ исправить его из командной строки, но я исправил его, войдя в учетную запись пользователя, перейдя в настройки учетной записи и изменив имя пользователя на имя пользователя. Это обновило файл / etc / passwd и устранило проблему. - Jibbers
Это самый простой и надежный способ сделать это. Лучше перезагрузка после шага 4, как предположил @Jibbers. - Yerke
Я бы сказал, что «закладки в окнах браузера файлов» теперь указывают на старые папки, поэтому мне нужно удалить эти закладки. - ollydbg23
Не получится. Если вы сначала нажмете Ctrl + Alt + F1, он попытается войти в новый созданный пользователь, которого он не позволит. - empedokles


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

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

mount -o remount,rw /

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

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

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

groupmod -n <newgroup> <oldgroup>

24
2018-04-08 09:23



когда я использую usermod -l <newname> -d /home/<newname> -m <oldname> это дает мне ошибку usermod: user oldusername is currently used by process 3170 и если я убью процесс, это даст мне ту же ошибку. используя ubuntu 13.10 - Waqas
НЕ ДЕЛАЙТЕ ЭТО, ЕСЛИ ВАША ДОМАШНЯЯ СПРАВОЧНАЯ ИНФОРМАЦИЯ ЗАПРЕЩАЕТСЯ !!!! Я следил за этой процедурой, и она отправила меня на дикую поездку на 2 часа ... Единственный способ восстановить - снова выполнить эту процедуру и снова вернуть оригинальное (нелюбимое) имя. Проблема у вас будет: «Не могу chdir в mount точка» - Mike


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


10
2017-07-07 22:45



Это не изменило имя пользователя для меня, просто имя. Старое имя пользователя все еще появляется в терминале, а также в качестве домашнего каталога и группы (даже после перезагрузки). - DougC


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

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

mount -o remount,rw /

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

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

3
2017-07-30 12:14





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

0
2017-08-06 06:12





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


-3
2017-12-16 13:15



Я пробовал этот путь (прежде чем я обнаружил usermod команда), и пароль пользователя больше не принимается. - Ben Voigt
@BenVoigt не все ПК имеют usermod - Малъ Скрылевъ
Это Ubuntu! Если у него нет usermod ваша установка нарушена, поскольку она является частью passwd пакет, который обязательный, - Auspex