Comment puis-je renommer un utilisateur Unix?

89

J'ai un utilisateur nommé hedgehoget je souhaite qu'il le soit squirrel, mais je ne souhaite pas modifier son ID utilisateur numérique.
Comment puis-je accomplir cela?

Szymon Jeż
la source
2
Probablement parce que renommer un utilisateur n'est pas exactement une tâche avec laquelle un SA professionnel aurait du mal. (Pour la question votes négatifs.)
HopelessN00b
2
@Jeznet J'ai voté contre parce que non seulement c'est une tâche incroyablement simple qui pourrait être résolue en tapant votre titre dans google, vous avez également répondu à votre propre question dès que vous l'avez posée. Semblait une perte de temps.
boburob
10
@boburob "vous avez également répondu à votre propre question dès que vous l'avez posée. Semblait une perte de temps", veuillez consulter: blog.stackoverflow.com/2011/07/…
Szymon Jeż
10
@boburob Avez-vous vu cette case à cocher qui dit Answer your own question – share your knowledge, Q&A-stylequand vous posez une question? Il existe pour une raison et ne le serait pas s'ils ne le voulaient pas. (Idéalement sur de meilleures questions, mais peu importe, réduire le vote de quelqu'un qui répond à sa propre question est de mauvaise forme.)
HopelessN00b
1
Oui, j'ai déjà répondu à ma propre question auparavant, mais pour moi, poser une question et coller le résultat Google dans la même minute est une perte de temps
boburob

Réponses:

133

Sous Linux, la usermodcommande change les noms d'utilisateur. Il modifie les fichiers du compte système pour refléter les modifications spécifiées sur la ligne de commande.

Pour changer uniquement le nom d'utilisateur:

usermod --login new_username old_username

Pour changer le nom d'utilisateur et le nom du répertoire de base:

usermod --login new_username --move-home --home path_to_the_new_home_dir old_username

Vous pouvez également vouloir changer le nom du groupe associé à l'utilisateur:

groupmod --new-name new_username old_username
Szymon Jeż
la source
12
Vous pouvez utiliser usermod pour tout faire. Usermod -l nouveau-nom-utilisateur -m -d / nouveau / home / rép ancien-nom-utilisateur
utilisateur9517
5
Notez également que le groupe n'est pas changé non plus. Si vous devez également renommer le old-user-namegroupe, utilisez # groupmod -n new-user-name old-user-name.
Alxs
1
Pour les systèmes utilisant autofs, vous devez également mettre à jour /etc/auto.home. Je viens de courir dans cela.
Steven C. Howell
2
Vous devrez peut-être exécuter à nouveau visudo pour mettre le nouveau nom d'utilisateur dans la liste des sudoers le cas échéant
Nagev
2
Vous devrez également renommer le fichier crontab situé dans /var/spool/cron/crontabs/(si des tâches sont installées)
Daniel F
12

NOTE: n'essayez pas ceci si votre répertoire est crypté! Si c'est votre cas, vous voudrez peut-être d'abord vérifier: https://askubuntu.com/questions/107410/can-you-unencrypt-remove-encryption-from-a-user-home-folder

Le moyen le plus simple de le faire est:

  1. Créez un nouveau compte temporaire avec les droits sudo:

    sudo adduser temp
    sudo adduser temp sudo
    
  2. Déconnectez-vous de votre compte actuel et reconnectez-vous avec le compte temporaire.

  3. Renommez votre nom d'utilisateur et votre répertoire:

    sudo usermod -l new-username -m -d /home/new-username old-username
    
  4. Renommez le groupe de votre nom d'utilisateur par défaut:

    sudo groupmod -n new-username old-username
    
  5. Déconnectez-vous du compte temporaire et reconnectez-vous à votre compte avec un nouveau nom d'utilisateur.

  6. Supprimer le compte temporaire:

    sudo userdel -r temp
    

Sinon, vous créez (1) un nouvel utilisateur et (2) rsyncl'ancien dossier personnel de l'utilisateur sur le nouveau, puis (3) chowncelui-ci.

mimoralea
la source
Dans CentOS, je devais également «passwd temp» et «usermod -aG wheel temp».
Brian Z
4

En règle générale, vous pouvez renommer un utilisateur en modifiant son nom d'utilisateur dans les fichiers /etc/passwd(et /etc/shadow, le cas échéant). Sur la plupart des systèmes Unix, la vipwcommande est utilisée pour éditer ces fichiers (et sur de nombreux systèmes, certaines sauvegardes garantissent que vous ne gachiez pas les choses trop mal).
Voir les pages de manuel passwd(5), shadow(5)et vipw(8)pour plus d' informations.

Notez que la méthode ci-dessus ne renomme pas d'autres éléments pouvant porter le nom d'utilisateur d'origine (les répertoires de départ étant le meilleur exemple, les groupes personnels par utilisateur (sur les systèmes qui les utilisent) en sont un autre). Vous voudrez peut-être aussi les nettoyer pour plus de cohérence, en modifiant les champs appropriés dans le fichier passwd et en renommant les répertoires.


Plusieurs systèmes d'exploitation fournissent un moyen spécifique au système pour renommer les utilisateurs. Par exemple, de nombreux systèmes Linux incluent la usermod(8)commande. Sous AIX, vous pouvez modifier les noms de compte à l'aide de SMIT (ou smittydans un terminal) .
Ces commandes gèrent souvent les éléments de nettoyage comme le changement de nom des répertoires de base, si vous le leur demandez.

voretaq7
la source