Comment changer l'identifiant d'un compte d'utilisateur ?
La plupart des informations relatives à un compte d'utilisateur sous Ubuntu sont modifiables à partir de l'outil d'administration graphique Utilisateurs et groupes. Par exemple, le nom affiché d'un compte, son mot de passe, son numéro de téléphone ou l'emplacement de son dossier personnel peuvent être changés à travers cette interface graphique.
Toutefois, l'identifiant d'un compte (en anglais, login name) ne peut pas être modifié à travers un outil graphique. Le recours à l'outil en ligne de commande usermod
est requis.
Utilisation de usermod
Comme tous les outils d'administration en ligne de commande, usermod
est un outil puissant qui a une structure stricte. Si vous ne respectez pas cette structure, vous pouvez rendre inopérant un compte d'utilisateur.
La commande s'emploie ainsi :
sudo usermod [options] IDENTIFIANT
Quelques options doivent être passées à usermod
afin qu'elles aient un résultat intéressant. Ci-dessous se trouve un exemple de commande complète qui provoque une modification de l'identifiant d'un compte et le déplacement de son dossier personnel :
sudo usermod --login nouvel_identifiant --home nouvel_emplacement_du_dossier_personnel --move-home identifiant_actuel
Étudions cette commande et ses options :
- L'option --login précise le nouvel identifiant qui devra être attribué au compte d'utilisateur. C'est la seule option qu'il est obligatoire de fournir ;
- (Optionnel) L'option --home indique l'emplacement du dossier personnel de l'utilisateur. Si cette option n'est pas précisée, l'emplacement actuel du dossier personnel est conservé ;
- (Optionnel) L'option --move-home déplace le contenu du dossier personnel actuel vers le nouvel emplacement, défini à l'option --home. Si cette option n'est pas indiquée, le nouveau dossier personnel du compte sera vide ;
- le terme identifiant_actuel désigne le nom du compte dont l'identifiant doit être changé.
Des options supplémentaires pour usermod
sont disponibles. Consultez le manuel utilisateur de usermod
(man usermod
) pour davantage d'informations.
Limitations
- L'identifiant d'un compte d'utilisateur ne peut pas être modifié lorsqu'une session est ouverte avec ce compte ;
- Seul un administrateur ou le compte super-utilisateur peuvent modifier l'identifiant d'un compte d'utilisateur.
Illustrons ces limitations par un exemple concret : dans un ordinateur, deux comptes d'utilisateurs existent : administrateur
et utilisateur
. Le compte d'utilisateur administrateur
est le seul à disposer des droits d'administration.
utilisateur
ne peut modifier l'identifiant de personne ;administrateur
peut modifier l'identifiant deutilisateur
;administrateur
ne peut pas modifier son propre identifiant. Pour procéder à la modification de son identifiant, il est nécessaire de passer par une session super-utilisateur (root) en mode de récupération.
Exemples pratiques
Robert et Denise ont un ordinateur dans lequel est installé un système Ubuntu. Le système leur a été livré ainsi :
- Robert a un compte dont l'identifiant est
administrateur
. Le compteadministrateur
est le seul compte disposant des droits d'administration ; - Denise a un compte dont l'identifiant est
utilisateur
.
Robert et Denise aimeraient que leur compte d'utilisateur ait pour identifiant leur prénom (robert
et denise
). De plus, ils aimeraient que leur dossier personnel soit déplacés afin qu'ils reflètent un emplacement approprié (/home/robert/
et /home/denise/
). Comment procéder ?
Changer l'identifiant d'un compte d'utilisateur à partir d'un autre compte d'administrateur
- Denise ne doit pas avoir de session active en cours. Si c'est le cas, elle doit d'abord clôturer toutes ses sessions ;
- Robert ouvre une session avec son compte
administrateur
; - Dans un terminal, Robert exécute les commandes suivantes :
administrateur@ordinateur:~$ sudo pkill -u utilisateur administrateur@ordinateur:~$ sudo usermod --login denise --home /home/denise --move-home utilisateur
Désormais, l'identifiant de compte de Denise est denise
et son dossier personnel se trouve à l'emplacement /home/denise/
.
Changer l'identifiant du seul compte d'administrateur d'un système Ubuntu
Robert ne doit pas avoir de session active en cours. Il ne peut pas modifier lui-même son identifiant de compte d'utilisateur. De plus, Denise n'est pas administratrice du système ; elle ne peut donc pas modifier l'identifiant de compte de Robert. Pour modifier l'identifiant de compte de Robert, il est nécessaire de passer par une session super-utilisateur du mode de récupération.
- Robert redémarre l'ordinateur ;
- Au menu de chargement, il choisit l'entrée de menu
Ubuntu, kernel 2.6.x (recovery mode)
; - Lorsqu'un menu contextuel apparaît, il choisit l'option root pour ouvrir une session en mode super-utilisateur ;
- À l'invite de commande qui apparaît, Robert exécute les commandes suivantes :
mount -o remount,rw /
afin de pouvoir écrire sur le système de fichier
root@ordinateur:~# usermod --login robert --home /home/robert --move-home administrateur
- Puis, Robert exécute la commande suivante :
root@ordinateur:~# exit
La session super-utilisateur prend fin et le menu contextuel apparaît à nouveau ;
- Il choisit l'option resume pour poursuivre le chargement normal d'Ubuntu.
Désormais, l'identifiant du compte de Robert est robert
et son dossier personnel se trouve à l'emplacement /home/robert/
.
Addendum : groupmod pour modifier les noms des groupes d'utilisateurs
Au moment de la création d'un nouveau compte d'utilisateur, un nouveau groupe d'utilisateurs du même nom est automatiquement créé. Ce groupe devient le groupe principal du nouveau compte d'utilisateur. Lorsque vous modifiez l'identifiant d'un compte d'utilisateur avec usermod
, le nom du groupe associé n'est pas automatiquement modifié. Pour forcer la modification d'un nom de groupe d'utilisateurs, vous devez utiliser l'utilitaire en ligne de commande groupmod
.
Reprenons l'exemple précédent de l'ordinateur de Robert et Denise : lorsqu'ils ont reçu leur ordinateur, deux comptes ont été créés : administrateur était membre d'un groupe d'utilisateur du même nom (administrateur), et utilisateur était aussi membre d'un groupe du même nom (utilisateur). Robert et Denise ont modifié le nom de leurs comptes d'utilisateur avec usermod
(le compte administrateur est devenu robert et le compte utilisateur est devenu denise). Cependant, les noms des groupes d'utilisateurs n'ont pas changé : le groupe d'utilisateur principal de robert est administrateur et celui de denise est utilisateur.
En soi, cela n'a pas de réel impact : Ubuntu se servant d'un identifiant numérique pour identifier les utilisateurs propriétaires et les groupes propriétaires des fichiers contenus dans le système d'exploitation, les noms des comptes d'utilisateur et des groupes d'utilisateurs peuvent différer. Toutefois, pour plus de propreté et pour être en accord avec certains tutoriels, il est préférable que tous deux soient identiques.
Pour ce faire, utilisez l'utilitaire en ligne de commande groupmod
. Il doit être exécuté par un administrateur du système ; il n'est pas obligatoire que les sessions en cours soient fermées. La commande s'emploie ainsi :
administrateur@ordinateur:~$ sudo groupmod --new-name nouveau_nom nom_actuel
Étudions cette commande et ses options :
- L'option --new-name précise le nouveau nom qui devra être attribué au groupe d'utilisateur. Le nom sera remplacé par nouveau_nom ;
- le terme nom_actuel désigne le nom du groupe dont le nom doit être changé.
Par exemple, une fois que leurs identifiants ont été changés, Robert et Denise souhaitent que leurs groupes principaux correspondent aussi à leur nom.
- Robert ouvre une session avec son compte
administrateur
; - Dans un terminal, Robert exécute les deux commandes suivantes :
robert@ordinateur:~$ sudo groupmod --new-name denise utilisateur robert@ordinateur:~$ sudo groupmod --new-name robert administrateur
Désormais, les noms des groupes principaux utilisateur
et administrateur
sont denise
et robert
. La modification est prise en compte immédiatement pour toutes les sessions utilisateurs, même pour celle de Robert qui est en cours actuellement.
Voir aussi
root@ordinateur:~# mount -o remount,rw /et refaite la commande précédente.