Comprendre la Sécurité Linux
Cette section couvre les aspects de sécurité fondamentaux de Linux, notamment les fichiers /etc/passwd et /etc/shadow.
Fichier /etc/passwd
# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
Chaque ligne du fichier /etc/passwd contient les informations suivantes:
- Nom d'utilisateur
- Mot de passe (généralement crypté)
- ID utilisateur (UID)
- ID du groupe principal (GID)
- Description de l'utilisateur
- Répertoire personnel
- Shell par défaut
Fichier /etc/shadow
rich:$1$.FfcK0ns$f1UgiyHQ25wrB/hykCn020:11627:0:99999:7:::
Chaque entrée dans le fichier /etc/shadow est composée de 9 champs:
- Nom d'utilisateur
- Mot de passe crypté
- Jours depuis 1970 jusqu'à la dernière modification du mot de passe
- Jours avant que le mot de passe ne puisse être modifié
- Jours après lesquels le mot de passe doit être modifié
- Jours avant l'expiration du mot de passe pour avertir l'utilisateur
- Jours après l'expiration du mot de passe avant la désactivation du compte
- Date d'expiration du compte (en jours depuis 1970)
- Champ réservé pour des usages futurs
Gestion des Utilisateurs
Ajout d'un Nouvel Utilisateur
L'outil principal pour ajouter un nouvel utilisateur est useradd. Il crée le compte utilisateur et configure le répertoire personnel selon des valeurs par défaut définies dans /etc/default/useradd.
# /usr/sbin/useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
Paramètres de useradd
| Option | Description |
|---|---|
| -c commentaire | Ajoute une description pour le nouvel utilisateur |
| -d répertoire_personnel | Définit le nom du répertoire personnel |
| -e date_expiration | Date d'expiration du compte (format AAAA-MM-JJ) |
| -f jours_inactivité | Jours d'inactivité après expiration du mot de passe |
| -g groupe_initial | Définit le groupe principal par son GID ou son nom |
| -G groupe,... | Ajoute des groupes supplémentaires |
| -k | Copie le contenu de /etc/skel vers le répertoire personnel (utilisé avec -m) |
| -m | Crée le répertoire personnel |
| -M | Ne crée pas le répertoire personnel (si la création est demandée par défaut) |
| -n | Crée un nouveau groupe portant le même nom que le nom d'utilisateur |
| -r | Crée un compte système |
| -p mot_de_passe | Définit un mot de passe par défaut |
| -s shell | Définit le shell par défaut |
| -u UID | Définit un UID unique |
Suppression d'un Utilisateur
Par défaut, userdel supprime uniquement les informations du fichier /etc/passwd. Avec l'option -r, il supprime également le répertoire personnel et le répertoire de messagerie.
Modification d'un Utilisateur
| Commande | Description |
|---|---|
usermod |
Modifie les attributs du compte utilisateur |
passwd |
Modifie le mot de passe |
chpasswd |
Lit des paires nom/mot de passe à partir d'un fichier et met à jour les mots de passe |
chage |
Modifie les dates d'expiration du mot de passe |
chfn |
Modifie les informations du compte utilisateur |
chsh |
Modifie le shell par défaut |
Gestion des Groupes
Ajout d'un Nouveau Groupe
La commande groupadd crée de nouveaux groupes. Pour ajouter des utilisateurs, utilisez usermod.
Modification d'un Groupe
La commande groupmod permet de modifier le GID ou le nom d'un groupe existant.
Gestion des Permissions de Fichiers
Définition des Permissions Par Défaut
La commande umask définit les perimssions par défaut pour les nouveaux fichiers et répertoires.
# umask 022; touch fichier8
# ll
-rw-r--r-- 1 root root 0 24 avr 15:41 fichier8
Pour un répertoire:
# umask 026; mkdir dossier_test5
# ll
drwxr-x--x 2 root root 4096 24 avr 15:43 dossier_test5
Modification des Permissions
Utilisez chmod pour changer les permissions d'un fichier ou d'un répertoire.
chmod options mode fichier
Modification des Propriétaires
Les commandes chown et chgrp permettent de modifier le propriétaire et le groupe par défaut d'un fichier.
chown options proprietaire[.groupe] fichier
Partage de Fichiers
Pour faciliter le partage de fichiers entre utilisateurs, Linux utilise des bits spéciaux:
- SUID: Le programme s'exécute avec les permissions du propriétaire du fichier.
- SGID: Pour les fichiers, le programme s'exécute avec les permissions du groupe du fichier; pour les répertoires, les nouveaux fichiers héritent du groupe par défaut.
- Sticky Bit: Les fichiers restent dans la mémoire après la fin du processus.
Activer le bit SGID sur un répertoire force les nouveaux fichiers à hériter du groupe du répertoire:
$ mkdir testdir
$ chgrp groupe_partagé testdir
$ chmod g+s testdir
$ touch testdir/fichier_test
$ ls -l testdir/fichier_test
-rw-rw-r-- 1 utilisateur groupe_partagé 0 20 sep 23:13 testdir/fichier_test