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 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?
permissions
keyrings
gnupg
ssh
user-profile
Takkat
la source
la source
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 tous les aspects de la base de données d'utilisateurs, vous utilisez l'
usermod
outil.Pour changer de nom d'utilisateur (il est probablement préférable de le faire sans être connecté):
Cela ne renomme toutefois pas le dossier de base.
Pour changer le dossier de départ, utilisez
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 aussi tuer certains processus en cours d'exécution de cet utilisateur première. Pour ce faire, entrezps -u username
, recherchez le PID correspondant et éliminez-le parkill PID-number
.Mise à jour: comme indiqué, certains fichiers peuvent faire référence à votre ancien répertoire de base. Vous pouvez soit conserver un lien symbolique pour la compatibilité ascendante, par exemple,
ln -s /home/newname /home/oldname
soit 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 compte utilisateur (administrateur), cela ne me permet pas de changer le nom d’utilisateur ("vous êtes déjà connecté", telle était la réponse dans TTY1 ( Ctrl+ Alt+ F1). autour de ceci:
Connectez-vous avec vos anciennes informations d'identification et ajoutez un nouvel utilisateur, par exemple "temporaire" dans TTY1:
définir le mot de passe.
Autorisez l'utilisateur temporaire à exécuter sudo en l'ajoutant au groupe sudo:
exit
.exit
(jusqu'à ce que vous obteniez l'invite de connexion)Supprimer un utilisateur et un dossier temporaires:
la source
grep -IRFl /home/username ~
et vous verrez combien de références à votre répertoire personnel y sont stockées./home/.ecryptfs/oldusername/.ecryptfs/Private.mnt
pour qu'il pointe vers votre nouveau dossier personnel. Sinon, vous ne pourrez pas vous connecter via Unity.sudo usermod -d /home/edge -m edge
rendements:usermod: Directory /home/empedokles could not be renamed in /home/edge
c'est -à- dire que l'étape 4 ne fonctionnera pas.sudoers
avec plainenano
. Toujours utiliservisudo
.Pour tout mettre ensemble:
Définissez un mot de passe pour le compte "root".
Se déconnecter.
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é.
Remplacez le nom du groupe par le nouveau nom souhaité.
Verrouillez le compte "root".
Si vous utilisiez ecryptfs (répertoire de base chiffré). Montez votre répertoire crypté en utilisant
ecryptfs-recover-private
et edit<mountpoint>/.ecryptfs/Private.mnt
pour refléter votre nouveau répertoire de base.Se déconnecter.
Appuyez sur Ctrl+ Alt+ F7.
Et maintenant, vous pouvez vous connecter en utilisant votre nouveau nom d'utilisateur.
la source
usermod -l
obtenu unuser <oldname> is currently used by process <processno>
, vous pouvez trouver ce processus (probablement un démon ou tmux / screen) en utilisantps aux | grep <processno>
. Vous voudrez peut-être arrêter ce processus en douceur, sinon vous pourrez le fairekill <processno>
.Redémarrez en mode de récupération et accédez au shell d'invite racine (option "Passer à l'invite du shell root").
Remontez d'abord la racine
Pour changer le nom d'utilisateur et le nom du dossier personnel,
Pour le nom du groupe,
la source
usermod -l <newname> -d /home/<newname> -m <oldname>
cela me donne une erreurusermod: user oldusername is currently used by process 3170
et si je tue toujours le processus, il me donne la même erreur. en utilisant ubuntu 13.10Sur Ubuntu 13.10, 14.04, 16.04:
la source
Lors de la réception,
usermod: can't change /etc/password
exécutez les commandes suivantes:Dans la console de récupération racine, exécutez:
Puis relancez:
la source
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:
la source
lorsque vous le faites,
usermod -l <newname> -d /home/<newname> -m <oldname>
vous obtiendrezuseradd: can't change /etc/passwd
un message d'erreur pour éviter cela, ajoutez simplementsudo --
à la commande ci-dessus commeet
la source
Comme tous les PC ont l'
usermod
application , vous pouvez le faire manuellement. En tant que root ouvert/etc/passwd
pour éditer:et changez le nom de l'utilisateur au début d'une ligne:
à:
Ensuite, si vous avez travaillé sur root, connectez-vous et si vous avez été connecté à
user
, déconnectez-vous et connectez-vous à nouveau.la source
usermod
commande) et le mot de passe de l'utilisateur n'est plus accepté.usermod
votre installation est interrompue car elle fait partie dupasswd
paquet, ce qui est requis .