Contenu | Rechercher | Menus

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 :

administrateur@ordinateur:~$ 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 :

administrateur@ordinateur:~$ 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

  1. L'identifiant d'un compte d'utilisateur ne peut pas être modifié lorsqu'une session est ouverte avec ce compte ;
  2. 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 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 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

  1. Denise ne doit pas avoir de session active en cours. Si c'est le cas, elle doit d'abord clôturer toutes ses sessions ;
  2. Robert ouvre une session avec son compte administrateur ;
  3. Dans un terminal, Robert exécute la commande suivante :
    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.

  1. Robert redémarre l'ordinateur ;
  2. Au menu de chargement, il choisit l'entrée de menu Ubuntu, kernel 2.6.x (recovery mode) ;
  3. Lorsqu'un menu contextuel apparaît, il choisit l'option root pour ouvrir une session en mode super-utilisateur ;
  4. À l'invite de commande qui apparaît, Robert exécute la commande suivante :
    root@ordinateur:~# usermod --login robert --home /home/robert --move-home administrateur

    1)

  5. Puis, Robert exécute la commande suivante :
    root@ordinateur:~# exit

    La session super-utilisateur prend fin et le menu contextuel apparaît à nouveau ;

  6. 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ée. 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.

  1. Robert ouvre une session avec son compte administrateur ;
  2. 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.

1) 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.


Le contenu de ce wiki est sous licence : CC BY-SA v3.0