{{tag>tutoriel administration}}
-----
====== 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 //[[:users-admin|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'' (''[[http://manpages.ubuntu.com/manpages/lucid/fr/man8/usermod.8.html|man usermod]]'') pour davantage d'informations.
Exemple: L'utilisateur **a** veut changer le nom de l'utilisateur **dd** en utilisateur **xx**
a@a:~$ sudo usermod --login xx --home /home/xx --move-home dd
===== Limitations =====
- L'identifiant d'un compte d'utilisateur ne peut pas être modifié lorsqu'une session est ouverte avec ce compte ;
- Seul un [[:sudo|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 de ''utilisateur'' ;
* ''administrateur'' ne peut pas modifier son propre identifiant. Pour procéder à la modification de son identifiant, il est nécessaire de passer par [[:recovery_mode|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 compte ''administrateur'' 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 [[:recovery_mode|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
((Si vous obtenez l'erreur « impossible de verrouiller /etc/passwd », c'est probablement que les fichiers sont en lecture seule. Dans ce cas, exécutez root@ordinateur:~# mount -o remount,rw /
et refaite la commande précédente.))
- 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/''.
Dans le cas où Robert est le seul à avoir un compte sur son ordinateur et qu'il utilise [[:sddm|SDDM]] avec l'option "Autologin" activée, il devra aussi modifier le fichier\\ ''/etc/sddm.conf'' comme suit, avant l'étape 5:
root@ordinateur:~#nano /etc/sddm.conf
[Autologin]
User=administrateur
Session=plasma.desktop
et remplacer
''administrateur''
par ''robert''
pour avoir
[Autologin]
User=robert
Session=plasma.desktop
Robert enregistrera la modification avec la commande ''Ctrl O (^O)'', puis quittera [[:nano|Nano]] avec ''Ctrl X (^X)''.\\ \\ A l'issue de l'étape 6, il faudra aussi modifier les fichiers de configuration dans les dossiers ''/home/robert/.config'' et ''/home/robert/.local'', en les éditant un à un pour changer, le cas échéant, ''administrateur'' par ''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 =====
* **(fr)** [[:tutoriel:gestion_utilisateurs_et_groupes_en_ligne_de_commande|Tutoriel gestion des utilisateurs et groupes en ligne de commande]]