Правильный способ изменения имени пользователя в Ubuntu или любом Linux

26

Я использую Ubuntu 12.04 и сделал некоторые настройки. Я также сделаю это новым ISO, который настроен на Ubuntu.

Я хочу спросить, как я могу изменить свое имя пользователя. В моей текущей домашней папке много настроек. Поэтому я не хочу связываться с изменением имени пользователя.

Так есть ли лучшая практика или рабочий процесс, чтобы сделать это?

CorpusCallosum
источник
Ваш домашний каталог часто создается с вашим именем пользователя, но вы можете изменить имя пользователя без изменения домашнего каталога, изменив первые элементы записей в / etc / passwd и / etc / shadow. Убедитесь, что вы можете войти в систему как root (не просто sudo из вашего логина), если вы допустили ошибку.
Anthon
Что делать, если я хочу изменить имя домашнего каталога? и что именно означает сказать в первых элементах?
CorpusCallosum

Ответы:

28

Действительно правильный путь? Скажем, вы хотите изменить пользователя 'peter' на 'paul'.

groupadd paul
usermod -d /home/paul -m -g paul -l paul peter

Это изменяет имя, группу, домашний каталог и владельца и группу этого каталога на новые вместе со всеми файлами. В итоге вы получаете пользователя, неотличимого от того, что он изначально был создан как 'paul'.

Другим способом было бы изменить первые поля записей Петра в /etc/passwdи /etc/shadowфайлов. Затем измените каждое вхождение 'peter' на 'paul' в /etc/group. Затем переименуйте домашний каталог /home/peterв /home/paul. А затем, chown -R paul /home/peterчтобы получить права владения и групповой доступ к каталогу и всем файлам и каталогам в нем, чтобы иметь новые.

Стив Бергман
источник
3
Нет необходимости в chown, если вы отредактировали / etc / {passwd, shadow, group} - владелец инода хранит численно владельца и группы
Грэм Николлс
5

Я бы порекомендовал не пытаться изменить имя пользователя. Это обычно связано с проблемами, когда на имя пользователя статически ссылаются в файлах конфигурации в форме домашнего каталога пользователя /home/<username>. Они почти никогда не пишутся в общем виде, поэтому обычно лучше просто создать новое имя пользователя, а затем перенести файлы и данные пользователя в новую учетную запись.

SLM
источник
1
Спасибо за комментарий. Я создал нового пользователя и изменил userid / group и домашний каталог относительно старого. Кажется, все работает круто. Как вы думаете, этот метод также может вызвать проблемы?
CorpusCallosum
3

Попробуйте команду usermod .

exec sudo su
usermod --login newname oldname
dgmltn
источник
Просто делай «sudo, что бы ты ни собирался делать». Выполнение sudo su не будет правильно регистрировать команды.
Кит Twombley
3

Вы можете изменить это; см. Как я могу изменить свое имя пользователя? на AskUbuntu. Эти инструкции хорошо сработали для меня. Чтобы сохранить вашу конфигурацию, просто создайте символическую ссылку для вашего старого домашнего каталога, как описано в ответах на этот вопрос.

z0r
источник
3

Используйте usermod для изменения имени пользователя и домашнего каталога . Измените пользователя peter на paul:

usermod -l paul peter
grep paul /etc/passwd /etc/shadow       # check

смените домашний каталог и переместите все туда (создается при необходимости)

usermod -m -d /home/paul paul
grep paul /etc/passwd               # check

Измените имя группы , но не используйте usermod, так как это требует, чтобы вы сначала создали другую группу (например, GID 1001), и, хотя она обновит GID для всего в каталоге $ HOME, вам придется искать и изменять файлы и каталоги в другом месте со старой группой владельцев. Вместо этого просто измените имя группы вручную.

nano /etc/group

и изменить

peter:x:1000:

в

paul:x:1000:

Вам придется изменить имена файлов, используемые cron, at и другими службами, которые используют имя пользователя вместо UID. использование

find /var -name "*peter*"

найти эти файлы.

Вам также придется изменить файлы конфигурации, используемые некоторыми службами, такими как приложения обработки почты.

Наконец, скрипты, использующие "/ home / peter /", должны быть отредактированы. Измените вхождения "/ home / peter /" на "$ HOME".

Не так много работы, чтобы изменить личность пользователя, вам просто нужно быть тщательным.

Дуэйн
источник
Проголосовал, потому что это тот же подход, который я использую (по тем же причинам, что и для сохранения GID). Кстати, вы можете на самом деле объединить две usermodкоманды в одну, и вы также должны помнить, чтобы редактировать /etc/gshadowвместе с /etc/group; Два из них можно изменить с помощью GNU sed: sudo sed -i 's/oldname/newname/g' /etc/{group,gshadow}- или, что еще лучше, с помощью sudo groupmod -n newname oldname. Отлично подходит для выделения некоторых других ошибок, таких как необходимость вручную изменить имя crontab пользователя (если он есть).
Энтони Дж. - правосудие для Моники
Краткое дополнение к этому ... вы не можете войти в систему, делая это. Создайте нового временного пользователя, который входит в группу sudoers, войдите в него, внесите изменения, выйдите из системы с новым временным доступом, войдите в переименованный и удалите временную учетную запись.
Янус