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]$