Gestion des utilisateurs et des groupes
Sous Linux, les utilisateurs sont représentés par l’UID et le GID, l’identifiant utilisateur et l’identifiant du groupe principal.
Il est possible qu’un utilisateur appartienne à plusieurs groupes. Il y aura donc les notions de groupe principal et de groupe secondaire. Le groupe principal étant le groupe attribué à l’utilisateur au moment de sa connexion.
Il existe trois types d’utilisateurs :
root
:
UID=0, GID=0 C’est l’administrateur du système. On se connecte en root avec su -.
daemon
:
UID 1-999, GID 1-999
Les utilisateurs compris entre 1
et 999
pour leur UID/GID
représentent les utilisateurs applicatifs (les services). 99%
des services ne sont pas exécutés sous l’identité de root
mais sous leur propre identité à des fins de sécurité.
utilisateur :
`UID et GID > 1000`
Les utilisateurs sont représentés par des UID/GID
supérieur à 1000
.
Gestion des utilisateurs
Les informations utilisateurs sont contenues dans /etc/passwd
et /etc/shadow
Le fichier /etc/passwd
Chaque ligne du fichier est écrite de la façon suivante :
nom:motdepassechiffré:UID:GID:nom,complet:/repertoire/personnel:/shell
Le
x
dans la colonne indique que le mot de passe est présent dans le fichier/etc/shadow
.
Le fichier /etc/shadow
Il est écrit de la façon suivante :
user:motdepassechiffré:datedernierchangement:agemini:agemax:périodeavertissement:périodeinectivité:datefinvalidité:champréservé
Ajouter un utilisateur
useradd <option> <utilisateur>
-m
: Crée le répertoire de l’utilisateur.
-M
: Ne créé pas le répertoire de l'utilisateur
-d [chemin]
: Permet de spécifier l'emplacement du répertoire utilisateur
-g [groupe /GID]
: Permet de spécifier le groupe principal ou le GID principal de l'utilisateur
-G [groupe1,groupe2]
: Spécifie la liste de groupe secondaire pour l'utilisateur
-s [/chemin/shell]
: Spécifie le shell de l'utilisateur
-r
: Indique la création d'un utilisateur système.
Par exemple :
useradd -m lantsei # créé l'utilisateur lantsei avec le répertoire utilisateur
useradd -m -d /srv/lantsei lantsei # créé l'utilisateur lantsei avec un répertoire utilisateur spécifié
useradd -m -g admin -G apache -s /bin/zsh lantsei # créé un utilisateur lantsei avec le groupe principal admin, le groupe secondaire apache, le shell zsh
Le fichier de configuration par défaut lors de la création d'un utilisateur sans options est configurable dans : /etc/default/useradd
.
Lors de la création d'un utilisateur, si l'option -m
est donné, useradd
copiera le contenu du répertoire /etc/skel
dans le répertoire d'accueil de l'utilisateur.
Supprimer un utilisateur
userdel <option> <utilisateur>
-r
: supprime les fichiers présent dans le répertoire de l'utilisateur
Modifier un utilisateur
usermod <option> <utilisateur>
-a
: Ajoute l'utilisateur aux groupes supplémentaires
-d [chemin]
: Indique le nouveau répertoire d'accueil de l'utilisateur.
-g [groupe /GID]
: Nom du nouveau groupe principal ou nouveau GID de l'utilisateur
-G [groupe1,groupe2]
: Remplace par des nouveau groupes secondaires sauf si l'option-a
est rajouté. Dans ce cas, les anciens groupes sont conservés.
-S [chemin]
: Remplace le shell de l'utilisateur
-L
: Verrouille le mot de passe de l'utilisateur
-U
: Déverrouille le mot de passe de l'utilisateur
Changer le mot de passe d'un utilisateur :
passwd <utilisateur>
Changer le shell d'un utilisateur
chsh -s /bin/bash <utilisateur>
Gestion des groupes
Les informations des groupes sont dans deux fichiers : /etc/group
et /etc/gshadow
.
Le fichier /etc/group
Ce fichier est composé de plusieurs champs séparés par le délimiteur :
.
nomdugroupe:motdepassechiffré:GID:liste,des,membres,ayant,ce,groupe,en,groupe,secondaire
S'il y'a un x
dans la colonne du mot de passe, cela indique que le mot de passe est dans le fichier /etc/gshadow
Le fichier /etc/gshadow
Ce fichier contient des informations cachées sur les groupes séparées par le délimiteur :
.
nomdugroupe:motdepassechiffré:administrateurs:membres
Si le champ du mot de passe contient les caractères !
ou *
, les utilisateurs ne pourront pas utiliser le mot de passe pour accéder au groupe. Si le champ est vide dans ce cas seul les membres du groupe pourront obtenir les permissions du groupe. Le champ administrateurs contient la liste des administrateurs du groupe séparé par des virgules. Les administrateurs peuvent modifier le mot de passe et les membres du groupe.
Commandes utiles pour la gestion des groupes
Créer un groupe avec groupadd
groupadd <options> <groupe>
-G [GID]
: valeur numérique du nom du groupe (> GID 1000 et supérieur au dernier groupe créé)
Exemple :
groupadd -G 1005 cloud # créé le groupe cloud avec le GID 1005
Modifier un groupe avec groupmod
groupmod <options> <groupe>
-g [GID]
: Change le GID d'un groupe
-n [nouveau nom]
: Change le nom d'un groupe
Exemples :
groupmod -g 1006 cloud # Change le GID du groupe cloud à 1006
groupmod -n cloud admin-cloud # Change le groupe cloud en admin-cloud
Supprimer un groupe avec groupdel
groupdel <groupe> # permet de supprimer un groupe s'il est vidé de tous ses membres avant
Exemple :
groupdel admin-cloud
Ajouter/supprimer un utilisateur à un groupe avec gpasswd
gpasswd <options> <groupe>
Exemples :
gpasswd -a <utilisateur> <groupe> # Ajoute un utilisateur à un groupe
gpasswd -d <utilisateur> <groupe> # Supprime un utilisateur à un groupe
gpasswd -d lantsei admin-cloud # Supprime l'utilisateur lantsei du groupe admin-cloud