Właściwy sposób zmiany nazwy użytkownika w Ubuntu lub dowolnym systemie Linux

26

Używam Ubuntu 12.04 i dokonałem pewnych dostosowań. Uczynię go również nowym ISO, który jest dostosowanym Ubuntu.

Chcę zapytać, jak mogę zmienić swoją nazwę użytkownika. W moim bieżącym folderze domowym jest dużo konfiguracji. Więc nie chcę mieszać się ze zmianą nazwy użytkownika.

Czy jest jakaś najlepsza praktyka lub przepływ pracy, aby to zrobić?

Ciało modzelowate
źródło
Twój katalog domowy jest często tworzony z twoją nazwą użytkownika, ale możesz zmienić nazwę użytkownika bez zmiany katalogu domowego, zmieniając pierwsze elementy wpisów w / etc / passwd i / etc / shadow. Upewnij się, że możesz zalogować się jako root (nie tylko sudo z loginu użytkownika) na wypadek pomyłki.
Anthon
co jeśli chcę zmienić nazwę katalogu domowego? i co dokładnie oznacza mówiąc pierwsze elementy?
CorpusCallosum

Odpowiedzi:

28

Naprawdę właściwa droga? Powiedz, że chcesz zmienić użytkownika „peter” na „paul”.

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

Spowoduje to zmianę nazwy, grupy, katalogu domowego oraz własności i grupy tego katalogu na nowe wraz ze wszystkimi plikami. W rezultacie użytkownik jest nie do odróżnienia od tego, że został pierwotnie utworzony jako „Paul”.

Innym sposobem byłaby edycja pierwszych pól wpisów Petera w plikach /etc/passwdi /etc/shadow. Następnie zmień każde wystąpienie „piotra” na „paul” w /etc/group. Następnie zmień nazwę katalogu domowego z /home/peterna /home/paul. A następnie chown -R paul /home/peteruzyskać prawa własności i grupy do katalogu i wszystkich znajdujących się pod nim plików i katalogów, aby mieć nowe.

Steve Bergman
źródło
3
Nie ma potrzeby chown, jeśli edytowałeś / etc / {passwd, shadow, group} - właściciel i grupy sklepów i-węzłów numerycznie
Graham Nicholls
5

Odradzam próbę zmiany nazwy użytkownika. Na ogół jest to uczynił z problemami, gdy nazwa użytkownika jest określany statycznie w plikach konfiguracyjnych w postaci katalogu domowym użytkownika, /home/<username>. Prawie nigdy nie są one pisane w sposób ogólny, dlatego najlepiej jest po prostu utworzyć nową nazwę użytkownika, a następnie przenieść pliki użytkownika i dane na nowe konto.

slm
źródło
1
Dziękuję za komentarz. Utworzyłem nowego użytkownika i zmieniłem identyfikator użytkownika / grupę i katalog domowy w stosunku do starego. wydaje się, że wszystko działa świetnie. Czy uważasz, że ta metoda może również powodować problemy?
CorpusCallosum
3

Spróbuj wykonać polecenie usermod .

exec sudo su
usermod --login newname oldname
dgmltn
źródło
Po prostu zrób „sudo cokolwiek chcesz”. Wykonanie sudo su nie będzie poprawnie rejestrować poleceń.
Keith Twombley
3

Możesz to zmienić; zobacz Jak mogę zmienić swoją nazwę użytkownika? na AskUbuntu. Te instrukcje działały dla mnie dobrze. Aby zachować konfigurację, po prostu utwórz dowiązanie symboliczne do starego katalogu domowego, zgodnie z opisem w odpowiedziach na to pytanie.

z0r
źródło
3

Użyj usermod, aby zmienić nazwę użytkownika i katalog domowy . Zmień użytkownika Peter na Paul:

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

zmień katalog domowy i przenieś tam wszystko (utworzone w razie potrzeby)

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

Zmień nazwę grupy , ale nie używaj usermod, ponieważ wymaga to najpierw utworzenia innej grupy (np. GID 1001) i chociaż zaktualizuje GID dla wszystkiego w katalogu $ HOME, będziesz musiał wyszukać i zmienić pliki i katalogi w innym miejscu ze starą własnością grupy. Zamiast tego po prostu zmień nazwę grupy ręcznie.

nano /etc/group

i zmień

peter:x:1000:

do

paul:x:1000:

Będziesz musiał zmienić nazwy plików używanych przez cron, at i inne usługi, które używają nazwy użytkownika zamiast UID. Posługiwać się

find /var -name "*peter*"

znaleźć te pliki.

Będziesz także musiał zmienić pliki konfiguracyjne używane przez niektóre usługi, takie jak aplikacje do obsługi poczty.

Na koniec trzeba będzie edytować skrypty korzystające z „/ home / peter /”. Zmień wystąpienia „/ home / peter /” na „$ HOME”.

Zmiana tożsamości użytkownika nie wymaga dużo pracy, wystarczy być dokładnym.

Duane
źródło
Głosowałem, ponieważ jest to to samo podejście, którego używam (z tych samych powodów w odniesieniu do zachowania GID). BTW, możesz właściwie połączyć dwa usermodpolecenia w jedno i powinieneś również pamiętać o edycji /etc/gshadowwraz z /etc/group; Oba z nich można zmienić za pomocą GNU sed: sudo sed -i 's/oldname/newname/g' /etc/{group,gshadow}- lub jeszcze lepiej za pomocą sudo groupmod -n newname oldname. Dobra robota do wyróżniania niektórych innych błędów, takich jak konieczność ręcznej zmiany nazwy pliku crontab użytkownika (jeśli go mają).
Anthony G - sprawiedliwość dla Moniki
Szybki dodatek do tego ... nie można się przy tym zalogować. Utwórz nowego użytkownika tymczasowego, który jest częścią grupy sudoers, zaloguj się przy tym, dokonaj zmian, wyloguj się z nowego konta tymczasowego, zaloguj się do konta o zmienionej nazwie i usuń konto tymczasowe.
Janus