web-dev-qa-db-fra.com

Comment renommer un utilisateur Unix?

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

98
Szymon Jeż

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

Pour modifier uniquement le nom d'utilisateur:

usermod --login new_username old_username

Pour modifier le nom d'utilisateur et le nom du répertoire personnel:

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
144
Szymon Jeż

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

La façon la plus simple de procéder 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 par défaut de votre nom d'utilisateur:

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

  6. Supprimer le compte temporaire:

    Sudo userdel -r temp
    

Sinon, il vous suffit de (1) créer un nouvel utilisateur et (2) rsync l'ancien dossier de base de l'utilisateur vers le nouveau, puis (3) chown celui-ci.

13
mimoralea

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 commande vipw est utilisée pour éditer ces fichiers (et sur de nombreux systèmes, inclut des protections pour vous assurer de ne pas trop gâcher les choses).
Consultez les pages de manuel pour 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 qui peuvent porter le nom d'utilisateur d'origine (les répertoires personnels étant l'exemple principal, les groupes personnels par utilisateur (sur les systèmes qui les utilisent) en sont un autre). Vous pouvez également les nettoyer pour des raisons de cohérence, en modifiant les champs appropriés dans le fichier passwd et en renommant les répertoires.


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

4
voretaq7