Question Comment changer mon nom d'utilisateur?


Il y a quelque temps, lorsque j'ai installé Ubuntu, j'ai choisi un nom d'utilisateur plutôt stupide pour mon compte que je ne souhaite plus utiliser.

Comment puis-je changer cela (y compris le nom de mon répertoire personnel et le nom dans le terminal) sans perdre les paramètres pour les applications?
Comment conserver les autorisations et les clés pour diverses authentifications (par exemple, e-mail, SSH, GPG et autres)?
Quels paramètres pourraient être perdus si je changeais de nom d'utilisateur?


262
2018-04-08 08:25


origine




Réponses:


Les systèmes d'exploitation de type Unix dissocient le nom d'utilisateur de l'identité de l'utilisateur. Vous pouvez donc modifier le nom en toute sécurité sans affecter l'ID. Toutes les autorisations, fichiers, etc. sont liés à votre identité (uid), pas à votre nom d'utilisateur.

Pour gérer chaque aspect de la base de données utilisateur, vous utilisez le usermod outil.

Pour changer de nom d'utilisateur (il est probablement préférable de le faire sans être connecté):

sudo usermod -l newUsername oldUsername

Ceci, cependant, ne renomme pas le dossier personnel.

Pour changer de dossier, utilisez

sudo usermod -d /home/newHomeDir -m newUsername

après avoir changé le nom d'utilisateur.

Par exemple, vous pouvez vous déconnecter, accéder à une console (Ctrl+Alt+F1), et sudo su - devenir une vraie racine (par opposition à sudo -s, où $ HOME est toujours / home / votrenom.) Peut-être devez-vous également tuer certains processus en cours d'exécution de cet utilisateur. Pour ce faire, entrez ps -u username, cherchez le PID correspondant et tuez-les par kill PID-number.

Mise à jour: comme indiqué, certains fichiers peuvent faire référence à votre ancien répertoire personnel. Vous pouvez soit conserver un lien symbolique pour la compatibilité ascendante, par exemple ln -s /home/newname /home/oldname ou vous pouvez changer le contenu du fichier avec sed -i.bak 's/*oldname*/*newname*/g' *list of files* Il crée une sauvegarde pour chaque fichier avec une extension .bak.

Quelques informations supplémentaires pour les utilisateurs moins expérimentés comme moi:
Comme je n'ai qu'un seul compte d'utilisateur (administrateur), cela ne me permettrait pas de changer le nom d'utilisateur ("vous êtes déjà connecté" était la réponse dans TTY1 (Ctrl+Alt+F1). Pour contourner cela:

  1. Connectez-vous avec vos anciennes informations d'identification et ajoutez un nouvel utilisateur, par ex. "temporaire" dans TTY1:

    sudo adduser temporary
    

    définir le mot de passe.

  2. Autoriser l'utilisateur temporaire à exécuter sudo en ajoutant l'utilisateur au groupe sudo:

    sudo adduser temporary sudo
    
  3. Déconnectez-vous avec la commande exit.
  4. Retour à tty1: Connectez-vous avec le compte d'utilisateur et le mot de passe 'temporaires'. Changez votre nom d'utilisateur et votre dossier comme mentionné ci-dessus. exit (jusqu'à ce que vous obteniez l'invite de connexion)
  5. Retourner à TTY7 (Ctrl+Alt+F7) pour vous connecter sur l’écran de l’interface graphique / bureau normal et voir si cela fonctionne.
  6. Supprimer l'utilisateur temporaire et le dossier:

    sudo deluser temporary
    sudo rm -r /home/temporary
    

257
2018-04-08 08:48



Ceci n'est malheureusement pas le cas pour différents fichiers de configuration sous $ HOME, essayez de lancer quelque chose comme: grep -IRFl /home/username ~ et vous verrez combien de références à votre répertoire personnel y sont stockées. - arrange
Était un correctif simple - Il suffisait d'utiliser l'éditeur des comptes d'utilisateurs dans l'unité, suivi par le redémarrage. - Steve Koch
Pour ceux avec un dossier personnel chiffré, vous devrez modifier /home/.ecryptfs/oldusername/.ecryptfs/Private.mnt pour pointer vers votre nouveau dossier personnel, vous ne pourrez pas vous connecter via Unity. - raphael
sudo usermod -d /home/edge -m edge donne: usermod: Directory /home/empedokles could not be renamed in /home/edge c'est-à-dire que l'étape 4 ne fonctionnera pas. - empedokles
@JTC jamais modifier sudoers avec plaine nano. Toujours utiliser visudo. - styrofoam fly


Pour tout rassembler:

  1. À l'écran de démarrage, appuyez sur Ctrl+Alt+F1.
  2. Connectez-vous en utilisant votre nom d'utilisateur et mot de passe.
  3. Définissez un mot de passe pour le compte "root".

    sudo passwd root
    
  4. Connectez - Out.

    exit
    
  5. Connectez-vous à l'aide du compte "root" et du mot de passe que vous avez défini précédemment.

  6. Modifiez le nom d'utilisateur et le dossier de base pour le nouveau nom que vous souhaitez.

    usermod -l <newname> -d /home/<newname> -m <oldname>
    
  7. Remplacez le nom du groupe par le nouveau nom souhaité.

    groupmod -n <newgroup> <oldgroup>
    
  8. Verrouille le compte "root".

    passwd -l root
    
  9. Si vous utilisiez ecryptfs (répertoire personnel chiffré). Montez votre répertoire crypté en utilisant ecryptfs-recover-privateet éditer <mountpoint>/.ecryptfs/Private.mnt pour refléter votre nouveau répertoire personnel.

  10. Connectez - Out.

    exit
    
  11. presse Ctrl+Alt+F7.

Et maintenant, vous pouvez vous connecter avec votre nouveau nom d'utilisateur.


90
2017-07-06 09:43



Si après usermod -l  vous obtenez un user <oldname> is currently used by process <processno>, vous pouvez trouver ce processus (probablement un démon, ou tmux / screen) en utilisant ps aux | grep <processno>. Vous voudrez peut-être arrêter gracieusement ce processus, sinon vous pouvez kill <processno>. - RedPixel
Merci d'avoir mis ce commentaire ensemble. C'était très utile. Deux choses qui pourraient être mentionnées cependant. Après l'étape 4, j'ai redémarré pour que je n'obtienne pas de message d'erreur à l'étape 6. De plus, une fois ce processus terminé, le fichier / etc / passwd contiendra l'identifiant correspondant à l'ancien nom d'utilisateur. Cela entraînera l'écran de connexion pour afficher l'ancien nom de connexion. Je n'ai pas trouvé de moyen correct pour le résoudre depuis la ligne de commande, mais je l'ai corrigé en me connectant au compte utilisateur, en accédant aux paramètres du compte et en changeant le "Login Name" en nom d'utilisateur. Cela a mis à jour le fichier / etc / passwd et a résolu le problème. - Jibbers
C'est le moyen le plus simple et le plus sûr de le faire. Il est préférable de redémarrer après l'étape 4 comme suggéré par @Jibbers. - Yerke
Je mentionnerais que les "signets dans les fenêtres du navigateur de fichiers" pointent maintenant vers les anciens dossiers. Je dois donc supprimer ces signets. - ollydbg23
Ne fonctionnera pas. Si vous appuyez sur Ctrl + Alt + F1 au début, il tente de se connecter à l'utilisateur nouvellement créé. - empedokles


Redémarrez en mode de récupération et accédez au shell de l'invite racine ("Invite du shell root").

Remontez d'abord la racine

mount -o remount,rw /

Pour changer le nom d'utilisateur et le nom du dossier de base,

usermod -l <newname> -d /home/<newname> -m <oldname>

Pour le nom du groupe,

groupmod -n <newgroup> <oldgroup>

24
2018-04-08 09:23



quand j'utilise usermod -l <newname> -d /home/<newname> -m <oldname> cela me donne une erreur usermod: user oldusername is currently used by process 3170 et si je tue le processus encore, cela me donne la même erreur. en utilisant Ubuntu 13.10 - Waqas
NE PAS FAIRE CECI SI VOTRE ANNUAIRE DE MAISON EST CRYPTÉ !!!! J'ai suivi cette procédure et cela m'a envoyé pour un tour de 2 heures ... La seule façon de récupérer est d'exécuter à nouveau cette procédure et de replacer le nom d'origine. Le problème que vous rencontrerez est "Impossible d'inclure point" - Mike


(En utilisant Ubuntu 13.10, 14.04, 16.04) Cliquez sur l'icône "Paramètres système". Cliquez ensuite sur "Comptes utilisateurs". Votre compte administrateur doit être affiché. Cliquez sur le bouton "Déverrouiller". Entrez votre mot de passe utilisateur comme demandé pour autoriser les modifications sur votre compte. Une fois débloqué, vous pouvez cliquer sur votre ancien nom d'utilisateur que vous souhaitez modifier et saisir un nouveau nom d'utilisateur pour le remplacer. Lorsque vous avez tapé le nouveau nom, cliquez sur le bouton "Verrouiller" pour rendre le changement permanent. Redémarrez Ubuntu.


10
2017-07-07 22:45



Cela n'a pas changé le nom d'utilisateur pour moi, juste le nom. L'ancien nom d'utilisateur apparaît toujours dans le terminal et en tant que répertoire de base et groupe (même après le redémarrage). - DougC


En recevant usermod: can't change /etc/password lancez simplement les commandes suivantes:

Dans la console de récupération racine, exécutez:

mount -o remount,rw /

Puis relancez:

usermod -l <newname> -d /home/<newname> -m <oldname>

3
2017-07-30 12:14





quand tu fais usermod -l <newname> -d /home/<newname> -m <oldname> tu auras useradd: can't change /etc/passwd message d'erreur pour éviter cela simplement ajouter sudo -- au dessus de la commande comme

sudo -- usermod -l <newname> -d /home/<newname> -m <oldname>

et

sudo --  groupmod -n <newgroup> <oldgroup>

0
2017-08-06 06:12





Puisque tous les PC n’ont pas le usermod app vous pouvez le faire manuellement. À partir de la racine ouverte /etc/passwd éditer:

sudo vim /etc/passwd

et changez le nom de l'utilisateur au début d'une ligne:

user:x:500:501:username:home/user:/bin/bash

à:

newuser:x:500:501:username:home/user:/bin/bash

alors si vous avez travaillé de root, connectez-vous, et si vous avez été connecté à user, se déconnecter et se reconnecter.


-3
2017-12-16 13:15



J'ai essayé de cette façon (avant de découvrir le usermod commande) et le mot de passe de l'utilisateur n'est plus accepté. - Ben Voigt
@BenVoigt pas tous les PC ont le usermod - Малъ Скрылевъ
C'est Ubuntu! S'il n'a pas usermod votre installation est cassée car elle fait partie de la passwd paquet, qui est Champs obligatoires. - Auspex