❖Comprendre la Gestion des Utilisateurs, Groupes et
Permissions sous Linux
Les Bases Fondamentales
1. Notion d'Utilisateur
Chaque utilisateur a un UID unique (User ID)
Les informations sont stockées dans /etc/passwd avec ce format:
nom_utilisateur:x:UID:GID:description:/home/utilisateur:/bin/bash
Le fichier /etc/shadow stocke les mots de passe chiffrés (accessible
seulement par root)
2. Notion de Groupe
Les groupes permettent de regrouper des utilisateurs (un utilisateur peut
appartenir à plusieurs groupes).
Les informations sont dans /etc/group:
nom_groupe:x:GID:utilisateur1,utilisateur2
Chaque utilisateur à un groupe principal (défini dans /etc/passwd)
3. Droits d'Accès
Chaque fichier/répertoire a:
Un propriétaire (utilisateur)
Un groupe propriétaire
3 types de permissions:
r (lecture)
w (écriture)
x (exécution/traversée pour les répertoires)
Les permissions s'appliquent à 3 catégories:
Propriétaire (u)
Groupe propriétaire (g)
Autres utilisateurs (o)
Commandes Essentielles
Gestion des utilisateurs:
useradd : créer un utilisateur
usermod : modifier un utilisateur
userdel : supprimer un utilisateur
passwd : changer le mot de passe
Gestion des groupes:
groupadd : créer un groupe
groupmod : modifier un groupe
groupdel : supprimer un groupe
groups : voir les groupes d'un utilisateur
Gestion des permissions:
chmod : changer les permissions (ex: chmod u+rwx fichier)
chown : changer le propriétaire (ex: chown user fichier)
chgrp : changer le groupe propriétaire (ex: chgrp groupe fichier)
Partie 1 : Création d'utilisateurs et groupes (TP)
1. Modification de /etc/passwd
● Quand vous devez créer un utilisateur manuellement:
Ouvrez le fichier avec un éditeur (en tant que root):
sudo nano /etc/passwd
Ajoutez une ligne comme ceci:
user1:x:1005:1005::/home/user1:/bin/bash
user1: nom de l'utilisateur
x: mot de passe (géré dans /etc/shadow)
1005: UID (User ID)
1005: GID (Group ID principal)
::: description (vide ici)
/home/user1: répertoire home
/bin/bash: shell par défaut
● Créez le répertoire home et définissez les permissions:
mkdir /home/user1
chown user1:user1 /home/user1
chmod 700 /home/user1
2. Création de groupes dans /etc/group
Ouvrez le fichier:
sudo nano /etc/group
Ajoutez une ligne comme:
groupe12:x:1005:user1,user2
groupe12: nom du groupe
x: mot de passe (rarement utilisé)
1005: GID
user1,user2: membres du groupe
3. Tester la connexion
su - user1
Le - est important car il charge l'environnement complet de user1.
Partie 2 : Gestion des permissions (TD)
1. Analyser les permissions avec ls -l
Pour un fichier:
-rw-r--r-- 1 user1 groupe12 0 Oct 25 10:00 fichier.txt
Décodage:
-: type (fichier normal)
rw-: permissions du propriétaire (lecture/écriture)
r--: permissions du groupe (lecture)
r--: permissions autres (lecture)
user1: propriétaire
groupe12: groupe propriétaire
2. Modifier les permissions
Pour donner l'écriture au groupe:
chmod g+w fichier.txt
Détail:
g: groupe
+w: ajoute l'écriture
Notation octal alternative:
chmod 664 fichier.txt # rw-rw-r–
3. Cas pratique complet
"Donner à user2 (du groupe groupe12) le droit d'écrire dans fichier.txt"
-Vérifiez que user2 est dans groupe12:
groups user2
-Si non, ajoutez-le:
usermod fabyy groupe12 user2
-Modifiez les permissions:
chmod g+w fichier.txt
-Vérifiez:
ls -l fichier.txt
-Doit afficher:
-rw-rw-r--
Conseils avancés
Pour les répertoires:
x = droit de traverser (cd)
w = droit de créer/supprimer des fichiers
Commande utile pour voir les permissions effectives:
getfacl fichier.txt
Pour changer propriétaire et groupe:
chown user1:groupe12 fichier.txt
Astuce pour TP: toujours vérifier:
● Qui est le propriétaire?
● Quel est le groupe?
● Quels sont les droits actuels?
● Qui doit avoir accès?
Exemple de résolution de problème:
"User3 ne peut pas lire le fichier alors qu'il devrait"
Solution:
● Vérifiez les groupes de user3
● Vérifiez le groupe du fichier
● Ajoutez les droits si nécessaire:
chmod o+r fichier.txt # ou g+r si dans le même groupe