Table des matières

,

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 :

Des options supplémentaires pour usermod sont disponibles. Consultez le manuel utilisateur de usermod (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

  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.

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

  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 les commandes suivantes :
    1. mount -o remount,rw /

      afin de pouvoir écrire sur le système de fichier

    2. 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/.

Dans le cas où Robert est le seul à avoir un compte sur son ordinateur et qu'il utilise 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 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 :

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.

Voir aussi

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.