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 changer cela (y compris le nom de mon répertoire personnel et le nom du terminal) sans perdre les paramètres des applications?
Comment puis-je conserver les autorisations et mes clés pour diverses authentifications (par exemple, courrier électronique, SSH, GPG, etc.)?
Quels paramètres pourraient éventuellement être perdus si je changeais de nom d'utilisateur?
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, utilisez l'outil usermod
name__.
Pour changer de nom d'utilisateur (il est probablement préférable de le faire sans être connecté):
Sudo usermod -l newUsername oldUsername
Cela ne renomme toutefois pas le dossier de base.
Pour changer le dossier de départ, 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 une vraie racine (par opposition à Sudo -s
, où $ HOME est toujours/home/votrenom.) Peut-être devez-vous aussi d'abord tuer certains processus en cours d'exécution de cet utilisateur. Pour ce faire, entrez ps -u username
, recherchez le PID correspondant et supprimez-le avec kill PID-number
.
Mise à jour: comme indiqué, certains fichiers peuvent faire référence à votre ancien répertoire de base. Vous pouvez conserver un lien symbolique pour assurer la compatibilité ascendante, par exemple ln -s /home/newname /home/oldname
ou 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 une extension .bak.
Quelques informations supplémentaires pour des utilisateurs moins expérimentés comme moi:
Comme je n’ai qu’UN SEUL compte utilisateur (administrateur), cela ne me permet pas de changer le nom d’utilisateur ("vous êtes déjà connecté" était la réponse dans ATS1 (Ctrl+Alt+F1). Pour contourner cela:
Connectez-vous avec vos anciennes informations d'identification et ajoutez un nouvel utilisateur, par exemple. "temporaire" dans ATS1:
Sudo adduser temporary
définir le mot de passe.
Autorisez l'utilisateur temporaire à exécuter Sudo en l'ajoutant au groupe Sudo:
Sudo adduser temporary Sudo
exit
name__.exit
(jusqu'à ce que vous obteniez l'invite de connexion)Supprimer un utilisateur et un dossier temporaires:
Sudo deluser temporary
Sudo rm -r /home/temporary
Pour tout mettre ensemble:
Définissez un mot de passe pour le compte "root".
Sudo passwd root
Connectez - Out.
exit
Connectez-vous en utilisant le compte "root" et le mot de passe que vous avez précédemment défini.
Remplacez le nom d'utilisateur et le dossier de base par le nouveau nom souhaité.
usermod -l <newname> -d /home/<newname> -m <oldname>
Remplacez le nom du groupe par le nouveau nom souhaité.
groupmod -n <newgroup> <oldgroup>
Verrouillez le compte "root".
passwd -l root
Si vous utilisiez ecryptfs (répertoire de base chiffré). Montez votre répertoire chiffré à l’aide de ecryptfs-recover-private
et éditez <mountpoint>/.ecryptfs/Private.mnt
pour refléter votre nouveau répertoire de base.
Connectez - Out.
exit
Presse Ctrl+Alt+F7.
Et maintenant, vous pouvez vous connecter en utilisant votre nouveau nom d'utilisateur.
Redémarrez en mode de récupération et accédez à l'invite racine Shell (option "Passer à l'invite shell racine").
Remontez d'abord la racine
mount -o remount,rw /
Pour changer 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>
(Utiliser Ubuntu 13.10, 14.04, 16.04) Cliquez sur l’icône "Paramètres système". Cliquez ensuite sur "Comptes d'utilisateurs". Votre compte administrateur devrait être affiché. Cliquez sur le bouton "Déverrouiller". Entrez votre mot de passe utilisateur comme demandé pour autoriser les modifications de votre compte. Une fois déverrouillé, vous pouvez cliquer sur votre ancien nom d'utilisateur que vous souhaitez modifier et taper un nouveau nom d'utilisateur pour le remplacer. Lorsque vous avez saisi le nouveau nom, cliquez sur le bouton "Verrouiller" pour rendre la modification permanente. Redémarrez Ubuntu.
Lorsque vous recevez 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>
La réponse indiquée ici par @ karthick87 fonctionne parfaitement, mais voici ce que je ferais pour être sûr et éviter tous les problèmes:
quand vous faites usermod -l <newname> -d /home/<newname> -m <oldname>
vous obtiendrez un message d'erreur useradd: can't change /etc/passwd
pour éviter cela, il vous suffit d'ajouter Sudo --
à la commande ci-dessus, comme
Sudo -- usermod -l <newname> -d /home/<newname> -m <oldname>
et
Sudo -- groupmod -n <newgroup> <oldgroup>