Vraag Hoe kan ik een Unix-gebruiker hernoemen?


Ik heb een gebruiker met de naam hedgehog en ik wil dat hij een naam krijgt squirrel, maar ik wil zijn numerieke gebruikers-ID niet wijzigen.
Hoe kan ik dit bereiken?


63
2017-10-11 14:54


oorsprong


Waarschijnlijk omdat het hernoemen van een gebruiker niet echt een taak is waar een professionele SA mee worstelt. (Voor de vraag downvotes.) - HopelessN00b
@Jeznet Ik ben downvoted omdat dit niet alleen een ongelooflijk eenvoudige taak is die kan worden opgelost door je titel in Google te typen, je hebt ook je eigen vraag beantwoord zodra je erom vroeg. Het leek verspilling van tijd. - boburob
@boburob "je hebt ook je eigen vraag beantwoord zodra je erom vroeg. Het leek verspilling van tijd" zie: blog.stackoverflow.com/2011/07/... - Szymon Jeż
@boburob Zag je dat vakje dat zegt Answer your own question – share your knowledge, Q&A-style wanneer stel je een vraag? Het is daar met een reden, en zou er niet zijn als ze niet wilden dat het werd gebruikt. (Idealiter op betere vragen, maar toch, is het negeren van iemand om zijn eigen vraag te beantwoorden een slechte vorm.) - HopelessN00b
Ja, ik heb ook mijn eigen vraag al eerder beantwoord maar voor mij is het stellen van een vraag en het plakken van het Google-resultaat in dezelfde minuut een beetje zonde van de tijd - boburob


antwoorden:


Onder Linux, de usermod opdracht wijzigt gebruikersnamen. Het wijzigt de systeemaccountbestanden om de wijzigingen weer te geven die zijn opgegeven op de opdrachtregel.

Om alleen de gebruikersnaam te wijzigen:

usermod --login new_username old_username

Om de gebruikersnaam en de naam van de thuismap te wijzigen:

usermod --login new_username --move-home --home /new/home/dir old_username

U kunt ook de naam van de groep die aan de gebruiker is gekoppeld, wijzigen:

groupmod --new-name new_username old_username

98
2017-10-11 14:54



U kunt usermode gebruiken om het hele doermiddel te gebruiken - l new-user-name -m -d / new / home / dir old-user-name - Iain
@Iain Bedankt. Ik zal mijn antwoord uitbreiden om dat te weerspiegelen. BTW Daarom heb ik deze "triviale" vraag gesteld - om een ​​antwoord te krijgen dat beter is dan het mijne (en ook omdat ik het niet al bij SF kon vinden). - Szymon Jeż
Merk ook op dat de groep ook niet is gewijzigd. Als u de naam moet wijzigen old-user-name groep ook, gebruik # groupmod -n new-user-name old-user-name. - alxs
Voor systemen die gebruiken autofs, je zou ook moeten updaten /etc/auto.home. Ik kwam dit gewoon tegen. - Steven C. Howell
Mogelijk moet visudo opnieuw worden uitgevoerd om de nieuwe gebruikersnaam in de sudoerslijst te plaatsen, indien van toepassing - Nagev


NOTITIE: probeer dit niet als uw directory is gecodeerd! Als dit uw geval is, wilt u misschien eerst controleren: https://askubuntu.com/questions/107410/can-you-unencrypt-remove-encryption-from-a-user-home-folder

De directe manier om dit te doen is:

  1. Maak een nieuw tijdelijk account met sudo-rechten:

    sudo adduser temp
    sudo adduser temp sudo
    
  2. Log uit van uw huidige account en weer in met het tijdelijke account.

  3. Hernoem je gebruikersnaam en map:

    sudo usermod -l new-username -m -d /home/new-username old-username
    
  4. Hernoem de standaardgebruikersgroep van uw gebruikersnaam:

    sudo groupmod -n new-username old-username
    
  5. Log uit van een tijdelijke account en log weer in op uw account met de nieuwe gebruikersnaam.

  6. Verwijder tijdelijk account:

    sudo userdel -r temp
    

Anders, maak je (1) een nieuwe gebruiker en (2) rsync de oude thuismap van de gebruiker naar de nieuwe en vervolgens (3) chown het.


7
2017-12-18 16:49





Over het algemeen kunt u de naam van een gebruiker wijzigen door zijn gebruikersnaam in de /etc/passwd (en /etc/shadow, indien van toepassing) bestanden. Op de meeste Unix-systemen het vipw commando wordt gebruikt om deze bestanden te bewerken (en op veel systemen zijn enkele voorzorgsmaatregelen ingebouwd om ervoor te zorgen dat je de dingen niet te erg verkloot).
Zie de manpagina's voor passwd(5), shadow(5), en vipw(8) voor meer informatie.

Merk op dat de bovenstaande methode geen andere dingen hernoemt die de oorspronkelijke gebruikersnaam kunnen bevatten (thuismappen zijn het beste voorbeeld, persoonlijke groepen per gebruiker (op systemen die ze gebruiken) zijn een andere). U kunt deze ook opruimen voor consistentie, door de juiste velden in het passwd-bestand te wijzigen en de mappen een nieuwe naam te geven.


Verschillende besturingssystemen bieden een systeemspecifieke manier om gebruikers een nieuwe naam te geven. Veel Linux-systemen omvatten bijvoorbeeld de usermod(8) opdracht en op AIX kunt u accountnamen wijzigen met SMIT (of smitty in een terminal).
Deze commando's zullen vaak de opruimingsitems behandelen zoals het hernoemen van thuismappen, als je ze dat vraagt.


4