Gestion des utilisateurs

Il y a 3 types de comptes utilisateurs dans Linux : root (super utilisateur), daemon (utilisateur système) et utilisateur normal.

Les fichiers contenant des informations sur les utilisateurs sont : /etc/passwd, /etc/group et /etc/shadow.

Les commandes :

  • useradd, usermod et userdel : gèrent les utilisateurs.
  • passwd : gère les mots de passe utilisateurs
  • chage : affiche et configure les paramètres d’expiration du mot de passe

Gestion des utilisateurs

Créer un utilisateur et son groupe personnel :

# useradd <username>

Modifier un utilisateur :

# usermod [options][values] <username>

Il est également possible de modifier un utilisateur à partir du fichier /etc/login.defs.

Supprimer un utilisateur, l’option -r supprime également ses données (répertoire personnel) :

# userdel [-r] <username>

Extrait du manuel usermod

Les commandes

Les options disponibles pour la commande usermod sont :

-a, --append
Ajouter l'utilisateur aux groupes supplémentaires
=> N'utilisez cette option qu'avec loption -G

-c, --comment COMMENTAIRE
La nouvelle valeur du champ de commentaire, normalement modifié avec chfn(1).

-d, --home RP_PERSO
Le nouveau répertoire personnel de lutilisateur.
-m : le contenu du répertoire personnel actuel sera déplacé dans le nouveau répertoire personnel

-e, --expiredate DATE_FIN_VALIDIT
Date à laquelle le compte utilisateur sera désactivé. Format AAAA-MM-JJ

-g, --gid GROUPE
Spécifie le groupe principal du compte d’utilisateur

-G, --groups GROUPE1[,GROUPE2,...[,GROUPEN]]]
Ajout de groupes supplémentaires

-l, --login NOUVEAU_LOGIN
Le nom de lutilisateur passera de LOGIN à NOUVEAU_LOGIN

-L, --lock
Verrouiller le mot de passe dun utilisateur

-m, --move-home
Move the content of the users home directory to the new location

-p, --password MOT_DE_PASSE
Mot de passe chiffré

-s, --shell INTERPRTEUR
Nom du nouvel interpréteur de commandes

-u, --uid UID
La valeur numérique de l'identifiant de lutilisateur

-U, --unlock
Déverrouiller le mot de passe d'un utilisateur

Les fichiers

Les fichiers utilisés par usermod sont :

  • /etc/group : Informations sur les groupes
  • /etc/gshadow : Informations sécurisées sur les groupes
  • /etc/passwd : Informations sur les comptes des utilisateurs
  • /etc/shadow : Informations sécurisées sur les comptes utilisateurs

Note sur les UID utilisateurs

Lors de la suppression d’un utilisateur sans supprimer son répertoire personnel (userdel -r), son ancien UID reste attribué à ses anciens fichiers. Si un autre utilisateur est crée avec ce même UID, tous les fichiers de l’utilisateur supprimé appartiendront au nouvel utilisateur et présentera un risque de confidentialité/sécurité.
En général, la suppression des comptes d’utilisateur n’est pas utilisée pour éviter ce genre de problèmes et garder une traçabilité. Le verouillage du compte est utilisé à la place (usermod -L)

La commande find avec les options -nouser, -o et -nogroup permet de trouver tous les fichiers et répertoires sans propriétaire :

# find / -nouser -o -nogroup

/!\ Résumé des commandes

Commandes utilisateurs :

# useradd <username>	                        // Créer un utilisateur et son groupe personnel
# userdel <username> // Supprimer un utilisateur
# userdel [-r] <username> // -r supprime également ses données
# passwd <username> // Change le mot de passe
# passwd <username> -P l3p4ssS3cr3t // Change le mot de passe en le préciant directement

Commandes pour modifier un utilisateurs :

# usermod [options][values] <username> 		// Modifier un utilisateur
# usermod -a groupe1, groupe2 <username> // Ajouter des groupes
# usermod -aG groupe1, groupe2 <username> // Ajouter des groupes SANS supprimer les anciens
# usermod -g GROUPE <username> // Spécifie le groupe principal
# usermod -c COMMENTAIRE <username> // Modifier le commentaire
# usermod -d RP_PERSO <username> // Nouveau répertoire personnel de lutilisateur
# usermod -dm RP_PERSO <username> // Le contenu du répertoire personnel actuel sera déplacé dans le nouveau
# usermod -e AAAA-MM-JJ <username> // Date à laquelle le compte utilisateur sera désactivé
# usermod -l NOUVEAU_LOGIN <username> // Le nom de lutilisateur passera de username à NOUVEAU_LOGIN
# usermod -L <username> // Verrouiller le mot de passe dun utilisateur
# usermod -m /directory <username> // Le contenu du répertoire personnel sera déplacé dans un autre repertorie
# usermod -s INTERPRETEUR <username> // Nom du nouvel interpréteur de commandes
# usermod -p MOT_DE_PASSE <username> // Mot de passe chiffré
# usermod -u UID <username> // Specifie l'UID d'un utilisateur
# usermod -U <username> // Déverrouiller le mot de passe d'un utilisateur

Fichiers :

/etc/group          // Informations sur les groupes
/etc/gshadow // Informations sécurisées sur les groupes
/etc/passwd // Informations sur les comptes utilisateurs
/etc/shadow // Informations sécurisées sur les comptes utilisateurs
/etc/login.defs // Options des comptes users modifiables : plage UID, validité mpd, etc.

Cas pratique

Créer l’utilisateur John et définir son mot de passe :

[root@SERVER01 ~]# useradd john
[root@SERVER01 ~]# passwd john
Changing password for user john.
New password: SuperMDP
Retype new password: SuperMDP
passwd: all authentication tokens updated successfully.

Mise à jour des commentaires du compte john :

[root@SERVER01 ~]# usermod -c "The Ripper" john
[root@SERVER01 ~]# tail /etc/passwd
[...]
aline:x:1000:1000::/home/aline:/bin/bash
paul:x:1001:1001::/home/paul:/bin/bash
blue:x:1002:1002::/home/blue:/bin/bash
john:x:1003:1003:The Ripper:/home/john:/bin/bash

Supprimer john et son répertoire personnel :

[root@SERVER01 ~]# userdel -r john

Vérouiller un compte :

[aline@SERVER01 ~]$ sudo usermod -L john
[aline@SERVER01 ~]$ su john
Password:
su: Authentication failure

Activer un compte vérouillé :

[aline@SERVER01 ~]$ sudo usermod -U john
[aline@SERVER01 ~]$ su john
Password:
[john@SERVER01]$

Documentation

MAN useradd(8)
MAN usermod(8)
MAN userdel(8)

> Partager <