Comment puis-je changer mon nom d'utilisateur?

Il y a quelque temps, lorsque j'ai installé Ubuntu, j'ai choisi un nom d'utilisateur assez stupide pour mon compte que je ne veux 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 des applications?
Comment conserver les autorisations et mes clés pour diverses authentifications (e-mail, SSH, GPG, etc.)?
Quels paramètres pourraient être perdus si je changeais mon nom d'utilisateur?

Les systèmes d'exploitation de type Unix découplent le nom d'utilisateur de l'identité de l'utilisateur, de sorte que vous pouvez changer 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 tous les aspects 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

Cependant, cela ne renomme pas le dossier personnel.

Pour changer le dossier d'accueil, utilisez

sudo usermod -d /home/newHomeDir -m newUsername

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

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

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

Quelques informations supplémentaires pour les utilisateurs moins expérimentés comme moi:
Comme je n'ai qu'UN SEUL compte 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 ce problème:

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

    sudo adduser temporary

    définissez 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 utilisateur et le mot de passe "temporaires". Modifiez votre nom d'utilisateur et votre dossier comme mentionné ci-dessus. exit (jusqu'à ce que vous obteniez l'invite de connexion)
  5. Revenir à TTY7 (Ctrl+Alt+F7) pour vous connecter sur l'interface graphique/l'écran de bureau normal et voir si cela fonctionne.
  6. Supprimer l'utilisateur et le dossier temporaires:

    sudo deluser temporarysudo rm -r /home/temporary

Pour mettre tout cela ensemble:

  1. Déconnectez - vous de votre session ou redémarrez votre ordinateur pour revenir à l'écran de démarrage.

  2. Sur l'écran de démarrage, accédez à un ATS en mode console. Appuyer Ctrl+Alt+F1 (sur certaines révisions d'Ubuntu, cela peut être Ctrl+Alt+F2 plutôt)

  3. Connectez-vous en utilisant votre nom d'utilisateur et votre mot de passe.

  4. Définissez un mot de passe pour le compte "root".

     sudo passwd root
  5. Déconnecter.

     exit
  6. Connectez-vous en utilisant le compte "root" et le mot de passe que vous avez précédemment défini.

  7. Changez le nom d'utilisateur et le dossier d'accueil pour le nouveau nom que vous souhaitez.

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

     groupmod -n <newgroup> <oldgroup>
  9. Verrouillez le compte "root".

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

  11. Déconnecter.

    exit
  12. Appuyer Ctrl+Alt+F7 pour revenir à l'écran de connexion en mode graphique Ubuntu (sur certaines révisions d'Ubuntu, cela peut être Ctrl+Alt+F1).

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

Redémarrez en mode de récupération et accédez au shell d'invite racine ("Drop to root shell prompt")

Remontez d'abord la racine

mount -o remount,rw /

Pour modifier le nom d'utilisateur et le nom du dossier personnel,

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

Pour le nom du groupe,

groupmod -n <newgroup> <oldgroup>

Sur Ubuntu 13.10, 14.04, 16.04:

  1. Cliquez sur l'icône" Paramètres système".
  2. Cliquez sur "Comptes d'utilisateurs".
  3. Votre compte administrateur devrait s'afficher.
  4. Cliquez sur le bouton" Déverrouiller".
  5. Entrez votre mot de passe utilisateur comme demandé pour autoriser les modifications de votre compte.
  6. Une fois déverrouillé, vous pouvez cliquer sur votre ancien nom d'utilisateur que vous souhaitez modifier et saisir un nouveau nom d'utilisateur pour le remplacer.
  7. Lorsque vous avez tapé le nouveau nom, cliquez sur le bouton" Verrouiller " pour rendre le changement permanent.
  8. Redémarrez Ubuntu.

Lors de la réception usermod: can't change /etc/password exécutez 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>

quand tu fais usermod -l <newname> -d /home/<newname> -m <oldname> vous obtiendrez useradd: can't change /etc/passwd message d'erreur pour éviter cela, ajoutez simplement sudo -- à la commande ci-dessus comme

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

et

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

La réponse listée ici par @karthick87 fonctionne parfaitement bien mais voici ce que je ferais juste pour être en sécurité et éviter tous les problèmes:

  1. Créez un compte/utilisateur distinct et assurez-vous que ce compte / utilisateur dispose des capacités root ou connectez-vous en tant qu'utilisateur root.
  2. Déconnectez-vous avec le compte actuel, puis connectez-vous avec le compte mentionné à l'étape 1.
  3. Tuez tous les processus de l'utilisateur précédent.
  4. Suivez maintenant les étapes mentionnées par @karthick87 et changez le nom d'utilisateur ainsi que le propriétaire du répertoire personnel.
  5. Suivez ensuite la réponse de @Sriraj Hebbar pour changer le nom du groupe.
  6. déconnectez-vous avec l'utilisateur de rechange et connectez-vous avec votre utilisateur. Si vous avez créé un utilisateur supplémentaire, supprimez-le.

Puisque pas toutes les lignes (cependant Ubuntu doit l'avoir) avoir le usermod app, il y a la façon dont vous pouvez le faire manuellement. À partir de la racine ouverte /etc / mot de passe pour éditer avec vim ou tout autre éditeur présent dans le système:

sudo vim /etc/passwd

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

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

de:

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

ensuite, si vous êtes root, connectez-vous simplement, et si vous avez été connecté en tant que utilisateur, déconnexion et reconnexion.

Bien sûr, vous devez réparer /etc / ombre, et /etc / groupe aussi au système fonctionne correctement. Merci à @JohanBoulé

NOTE: Vous devez utiliser cette approche avec précaution, pour ne pas casser le système.

NOTE: Cette approche est courante, non seulement pour Ubuntu, mais pour Ubuntu, cela fonctionnera, cependant la recherche Google l'affichera uniquement pour la recherche non ubuntu, par exemple pour Linux embarqué

Pourquoi ne pouvons-nous pas naviguer vers /usr / share/applications / users.bureau > > Cliquez sur l’utilisateur pour lequel le nom doit être changé. > > Cliquez sur Changer le nom d’utilisateur > > Changer le nom > > Cliquez sur Ok. Je pense que ce serait le moyen le plus simple de changer le nom d’utilisateur, n’est-ce pas?