Comment supprimer et renommer un utilisateur?

Bonjour,

Je voulais renommer mon nom d’utilisateur en un autre.
J’ai suivi ce tuto = Changer le login et le répertoire personnel d’un utilisateur | Linux- notebook
Dans ce tuto il est dit :
il n’est pas possible de changer le nom de l’utilisateur sous lequel on est logué.
Je me suis dit alors simple je vais créer un nouvel utilisateur bidon, toto, et je vais renommer une fois connecté à ce nouvel utilisateur.
Je fais la commande (root) :

adduser toto

Ça crée mon utilisateur bidon.
Je ferme la session actuel et je me connecte sous toto et je me dis je vais pouvoir changer de login et BIEN NON !
J’ouvre un terminal je me mets en root et je tape la commande suivante :

usermod -l nouveau-login ancien-login et la j'ai le message d'erreur :
usermod: user pierre is currently used by process 1935

Comment ça se fait que j’ai un process actif alors que je ne suis même pas sous le session pierre ?
Mais y a mieux maintenant je n’arrive pas à supprimer toto !
Bref c’est la cata la cata la catastrophe et c’est le mi mi le ra ra c’est la mémérde !

Bonjour

Il te faut d’abord fermer la session graphique de pierre
ce qui fait que le compte pierre n’aura plus aucune session ouverte.

Une fois ta session fermée, tu seras devant l’écran de connexion,
mais tu ne te connectes pas avec cet écran en mode graphique :

Tu ouvres une console en mode texte Ctrl+Alt+F2
pour t’y connecter avec le compte super-utilisateur root

Bonsoir @MicP ,

J’ai fait exactement tout ce que tu as dit, ça marche nickel.
Le seul souci maintenant c’est que je ne peux plus accéder à firefox ni en ligne de commande ni dans la barre de lancement (launcher).
J’ai le message d’erreur suivant lorsque je lance la commande firefox dans le terminal :
failed to load cookie file from cookie: Aucun fichier ou dossier de ce type (dans le terminal)
et j’ai également une pop up qui s’ouvre avec le message suivant :
Your Firefox profile cannot be loaded. It may be missing or inaccessible.

J’ai pu du tout accès à firefox c’est toujours la mouise !

Il y a sans aucun doute des personnes plus compétentes que moi pour régler ce problème,
mais je pense que tu devrais pouvoir créer un autre profil utilisateur Firefox
qui tiendra alors compte de ton nouveau nom de compte utilisateur sur ton système debian.

Un peu de lecture à ce sujet :
Firefox : Gestionnaire de profils – créer, supprimer et changer les profils de Firefox

Il faut que tu changes le propriétaire de tous les fichiers de l’ancien pierre dans le nouveau login:

chown -R nouveaulogin:nouveaulogin /home/nouveaulogin

Bonsoir @Zargos ,

Dans un premier temps j’ai fait la commande que tu m’as indiquer :

chown -R nouveauLogin:nouveauLogin /home/nouveauLogin

J’ai eu le message d’erreur suivant :

nouveauLogin:nouveauLogin introuvable

J’ai fait ensuite la commande suivante :

chown -R nouveauLogin:groupe  /home/nouveauLogin

ça a fonctionné mais je n’ai plus accès à rien via la barre de lancement (launcher) ni a firefox ni aux gestionnaire de fichier plus à rien !
De plus lorsque je me connecte via l’interface graphique à ma session le clavier est en querty.
J’ai alors ouvert un terminal dans ma session avec la commande suivante :

loadkeys fr

j’ai le message d’erreur suivant :

impossible d'obtenir un descripteur de fichier faisant référence à la console

C’est vraiment la cata la cata la catastrophe

Le tuto que tu cites dans ton premier message est malheureusement incomplet,
il y manque le changement du nom du groupe principal de ton compte utilisateur,
et d’autre choses…


Mais c’est très difficile de pouvoir te proposer une ligne de commande(s) efficace
parce qu’il nous manque des informations qui auraient pu être simplement obtenues
par des retours complets des commandes entrées.

Dans un retour complet, il doit y avoir :

  • le prompt suivit de la ligne de commande,
  • le retour de la commande exécutée
  • et le prompt de retour inclus

Par exemple, voici un retour complet de commande :

michel@debbull:~$ cat /etc/hostname 
debbull
michel@debbull:~$ 

et en voici un autre dans lequel on peut bien voir l’importance
d’inclure dans le retour de commande(s) le prompt de départ et celui de retour
parce qu’ils ne sont pas du tout les mêmes :

michel@debbull:~$ ssh martine@192.168.122.109
martine@192.168.122.109's password: 
Welcome to Ubuntu 20.04.3 LTS (GNU/Linux 5.11.0-40-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

0 mise à jour peut être appliquée immédiatement.

Your Hardware Enablement Stack (HWE) is supported until April 2025.
Last login: Mon Dec  6 00:23:28 2021 from 192.168.122.1
martine@ubu20043lts:~$ 

Donne nous l’ancien nom de ton compte utilisateur …

…et un retour complet de la ligne de commandes suivante
entrée depuis ton compte utilisateur actuel:

echo $USER; grep $USER /etc/group

Merci :slight_smile:

euh…comment dire…
Quand je met nouveauLogin, c’est le nouveau login que toi tu as défini pour remplacer Pierre. ne le connaissant pas j’ai mis quelque chose de générique.

@MicP
Ancien nom d’utilisateur = pierre
Nouveau nom d’utilisateur = Geronimo

Geronimo
cdrom:x:24Geronimo
floppy:x:25:Geronimo
sudo:x:27:Geronimo
audio:x:29:pulse,Geronimo
dip:x30:Geronimo
video:x:44:Geronimo
plugdev:x:46:Geronimo
netdev:x:109:Geronimo
bluethooth:x:113:Geronimo
scanner:x:118:saned,Geronimo

@Zargos

C’est exactement ce que j’ai fait.
La première commande que j’ai tapé :

chown -R Geronimo:Geronimo /home/pierre

La seconde :

chown -R Geronimo:Pierre   /home/pierre

Non.
Ce que j’ai mis c’est pour le cas où Pierre est devenu Geronimo.
Donc
chown -R Geronimo:Geronimo /homle/Geronimo
et ce après que Pierre soit devenu Geronimo.

Bonjour

Par défaut, un nom d’utilisateur ou de groupe
ayant une ou des lettres en majuscule ou/et accentuées ou des caractères spéciaux
n’aurait pas dû pouvoir passer puisque, toujours par défaut :

NAME_REGEX="^[a-z][-a-z0-9_]*\$"

Par exemple, sur mon système,
quand je tente de créer un compte utilisateur nommé Geronimo
voilà ce que ça donne :

root@debbull:~# adduser Geronimo
adduser : Merci de bien vouloir indiquer un nom d'utilisateur qui corresponde à l'expression rationnelle spécifiée
via la variable de configuration NAME_REGEX. Vous pouvez utiliser l'option « --force-badname »
pour outrepasser cette vérification, ou bien reconfigurer NAME_REGEX.
root@debbull:~# 

On ne trouve pas non plus dans le fichier /etc/group
de groupe nommé Geronimo ou geronimo
ce qui fait que ce compte utilisateur n’a pour l’instant pas de groupe principal.


Mais maintenant que j’ai les noms des comptes concernés,
je vais pouvoir plus facilement proposer des lignes de commande(s)
qui seront adaptées au contexte.

Donne le retour des deux lignes de commande suivantes :

grep -Ei "Geronimo|pierre" /etc/{group,passwd}
ls -n ~/.bashrc

En fonction du retour de ces lignes de commandes,
je pourrais proposer une solution efficace.

Mais t(as commande ne peut pas marcher puisque quand j’ai changé mon nom d’utilisateur = pierre
—> Geronimo,

Mon dossier personnel (/home/pierre) n’avais toujours pas changer de nom => repertoire /home/Geronimo n’existe pas

Fallait renommer le /home/pierre en /home/Geronimo puis appliquer la commande :

chown -R Geronimo:Geronimo /homle/Geronimo

Le souci c’est que j’avais pas de groupe Geronimo donc ça m’aurait générée une erreur.
Comme j’ai juste changer l’utilisateur pierre en Geronimo mais pas la groupe par défaut => j’avais
nom utilisateur = Geronimo
et comme groupe associé = pierre

@MicP

Je confirme que moi j’ai bien comme nom d’utilisateur = Geronimo avec un G majuscule !

/etc/group:cdrom:x:24:Geronimo
/etc/group:floppy:x:25:Geronimo
/etc/group:sudo:x:27:Geronimo
/etc/group:audio:x:29:pulse,Geronimo
/etc/group:dip:x:30:Geronimo
/etc/group/:video:44:Geronimo
/etc/group:plugdev:x:46:Geronimo
/etc/group:netdev:x:109:Geronimo
/etc/group:bluetooth:x:113:Geronimo
/etc/group:scaner:x:118:saned,Geronimo
/etc/group:pierre:x:1000
/etc/passwd:Geronimo:x:1000:1000:boutier,,,:/home/pierre:/bin/bash
ls : impossible d'accéder à /home/pierre/.bashrc : Aucun fichier ou dossier de ce type

Je précise un truc quand je me connecte sous Geronimo => je n’ai pas de home associé

Dans la ligne suivante, extraite de ton retour de commande :

/etc/group/:video:44:Geronimo

je ne comprends pas du tout pourquoi il y a ce caractère / à la fin du nom de fichier /etc/group
Si quelqu’un peux m’expliquer, ça m’aiderai à comprendre ce qu’il s’est passé
avant que je ne tente de modifier quoi que ce soit sur ta machine.


Il manque des informations essentielles à chacun de tes retours de commande(s)
ce sont :

  • le nom du répertoire courant depuis lequel la commande a été lancée
  • le nom du compte utilisateur qui a été utilisé pour lancer la ligne de commande(s)
  • le prompt de retour de la commande.

Voilà un exemple de retour complet :

michel@debbull:~/Téléchargements$ ls -ld ISOsInstall/
drwxr-xr-x 2 michel michel 4096  6 déc.  11:20 ISOsInstall/
michel@debbull:~/Téléchargements$ 

avec un retour de commande comme ça,
je peux en déduire que c’est le compte utilisateur non privilégié michel
de la machine dont le nom de hostname est debbull
qui a lancé la ligne de commande suivante :

ls -ld ISOsInstall/

et je peux en déduire aussi que le répertoire courant d’où a été lancé la commande est
/home/michel/Téléchargements
et que l’exécution de la commande s’est terminée sans erreur
et qu’il ne manque rien au retour de commande
puisque je peux voir le prompt de retour en dernière ligne.

Donc, dans tous les cas, tu nous aideras énormément en nous transmettant dans tes messages
des retours de commande(s) complets.


Donne nous le retour complet de la ligne de commande suivante :

ls -n /home

Merci. :slight_smile:

Comme quoi, créer un nouveau utilisateur Geronimo puis copier les fichiers de Pierre en maintenant leur statut puis changer le owner aurait été plus efficace. Encore que…

J’aimerai bien vous transmettre ces informations mais je ne peux pas faire de copier coller.
Je suis obligé de tapé toutes les commandes à la main et en plus j’ai un clavier querty c’est vraiment la merde pour taper les commandes surtout quand on a des caractères spéciaux.

C’est surement une faute de frappe de ma part car je tape touts les retours de commande à la main je ne peux pas faire de copier coller.

@MicP j’avais vu une commande sed de ta part pour résoudre le problème mais je ne la trouve plus sur le forum. @MicP as tu supprimé ton message ?

Oui, j’ai préféré supprimer ces messages,
parce que, si la méthode que je proposais avait bien fonctionné sur un système ubuntu et debian 10 (buster), je ne suis pas arrivé à la faire fonctionner sur mon système debian 11 (bullseye) utilisant l’environnement de bureau XFCE.

EDIT (barré) :
Ce n’était pas un changement de nom de compte utilisateur que j’avais réussi à faire,
mais un changement de l’UID de plusieurs comptes utilisateurs.

@MicP j’utilise l’environnement de bureau gnome pour info, qu 'es ce que tu me conseilles de faire ?

Je ne sais pas que te conseiller pour changer le nom d’un compte utilisateur existant et de son groupe principal sur ton système debian.

J’ai testé plusieurs autres méthodes,
mais aucune ne m’a permis d’ouvrir ensuite sans problème une session de l’environnement de Bureau, car même si les changements de noms ont fonctionné, il reste encore, dans les fichiers de configuration (et autres que je n’ai pas trouvés) des références au répertoire personnel du compte utilisateur avec l’ancien nom.

Le plus simple dans ce cas ne serait pas de créer un user avec le nom adéquat et de transférer tous le bazar sur celui-ci ?

PS : La commande usermod est censé gérer ce cas … c’est quoi le problème avec ?

usermod -l login-name old-name

Petit lien fonctionnel et à jour mais en anglais :stuck_out_tongue: : https://www.cyberciti.biz/faq/howto-change-rename-user-name-id/