Dans cette leçon, tu vas maîtriser les permissions Linux, un concept fondamental pour la sécurité et l'administration système.
Sous Linux, chaque fichier et dossier a des **permissions** qui définissent qui peut :
| Catégorie | Description |
|---|---|
| **Propriétaire (Owner)** | L'utilisateur qui a créé le fichier |
| **Groupe (Group)** | Le groupe associé au fichier |
| **Autres (Others)** | Tous les autres utilisateurs |
| propriétaire | Groupe | Autres |
rwx rwx rwx
Symbole Signification
rLecture autorisée
wÉcriture autorisée
xExécution autorisée
-Permission refusée
2. Voir les permissions
Commande ls -l
ls -l /home/david/fichier.txt
Résultat :
-rw-r--r-- 1 david david 1234 Mar 10 10:00 fichier.txt
Décryptage :
- rw- r-- r-- 1 david david 1234 Mar 10 10:00 fichier.txt
│ │ │ │ │ │ │ │ │ │
Type│Owner │Group │Other│Link │Owner │Group │Size │Date │Name
Caractère Type
-Fichier régulier
dRépertoire
lLien symbolique
cPériphérique caractère
bPériphérique bloc
3. Modifier les permissions
Commande chmod
#### Notation symbolique
# Ajouter une permission
chmod +x script.sh # Ajouter exécution pour tous
chmod u+x script.sh # Propriétaire peut exécuter
chmod g+w dossier/ # Groupe peut écrire
chmod o-r fichier.txt # Autres ne peuvent plus lire
# Retirer une permission
chmod -w fichier.txt # Retirer écriture pour tous
# Définir exactement
chmod u=rwx,g=rx,o=r fichier
#### Notation octale
#Valeurs
r = 4
w = 2
x = 1
- = 0
# Exemples
chmod 777 fichier # rwxrwxrwx (tout permis)
chmod 755 fichier # rwxr-xr-x (standard)
chmod 644 fichier # rw-r--r-- (lecture pour tous)
chmod 700 fichier # rwx------ (propriétaire seul)
chmod 600 fichier # rw------- (propriétaire seul)
Tableau des permissions Octales
Octal Symbolique Description
0 ---Aucune permission
1 --xExécution
2 -w-Écriture
3 -wxÉcriture + exécution
4 r--Lecture
5 r-xLecture + exécution
6 rw-Lecture + écriture
7 rwxTout
4. Modifier propriétaire et groupe
Chown - Changer le propriétaire
# Changer le propriétaire
sudo chown utilisateur fichier
# Changer propriétaire et groupe
sudo chown utilisateur:groupe fichier
# Changer le groupe seulement
sudo chown :groupe fichier
Chgrp - Changer le groupe
sudo chgrp groupe fichier
Options utiles
# Récursif (dossiers)
sudo chown -R utilisateur dossier/
# Préserver les liens symbolique
sudo chown -h lien_symbolique
Exemples pratiques
# Rendre un script exécutable
chmod +x monscript.sh
# Permettre l'écriture au groupe
chmod g+w dossier/
# Serveur web (Apache/Nginx)
sudo chown -R www-data:www-data /var/www/html/
# Dossier partagé
sudo chown -R root:shared /partage/
sudo chmod -R 2775 /partage/ # SGID pour hériter
5. Permissions spéciales
SetUID (4000)
Exécute avec les droits du propriétaire (rare, dangéreux).
# Ajouter
chmod 4755 executable
# Notation symbolique
chmod u+s executable
SetGID (2000)
Les fichiers héritent du groupe du répertoire.
chmod 2755 dossier/
chmod g+s dossier/
Sticky Bit (1000)
Sur un répertoire, seuls les propriétaires peuvent supprimer leurs fichiers.
chmod 1777 /tmp
chmod +t /tmp
6. Umask
Qu'est-ce que umask ?
umask définit les permissions par défaut pour les nouveaux fichiers.
# Voir umask actuel
umask
# Modifier pour la session
umask 022
# Rendre permanent (ajouter dans ~/.bashrc)
echo "umask 022" >> ~/.bashrc
Calculer umask
Pour un fichier (par défaut 666) :
- umask 022 → 666 - 022 = 644
Pour un répertoire (par défaut 777) :
- umask 022 → 777 - 022 = 755
7. Propriétés avancées des fichiers
ACL (Access Control Lists)
Pour des permissions plus fines, utiliser les ACL.
# Installer si besoin
sudo apt install acl
# Voir les ACL
getfacl fichier
# Ajouter une permission ACL
setfacl -m u:utilisateur:rwx fichier
# Supprimer ACL
setfacl -x u:utilisateur fichier
# Par défaut (pour nouveaux fichiers)
setfacl -m d:u:utilisateur:rx dossier/
8. Bonnes pratiques de sécurité
Permissions recommandées
Fichier/Dossier Permissions Raison
Scripts shell 755 (rwxr-xr-x) Exécutable par tous
Fichiers personnels 600 (rw-------) Privé
Clés SSH 600 (rw-------) Sécurisé
Répertoire web 755 Lecture publique
/tmp 1777 Temporaire mais protégé
Fichiers config système 644 Lecture, écriture root
⚠️ Commandes dangereuses à éviter
chmod -R 777 / # DANGER!
chmod -R 777 /home # DANGER!
chmod -R 777 /etc # TRES DANGER!
chmod 777 /etc/passwd # DANGER!
9. Exercices pratiques
Exercice 1 : Script exécutable
# Créer un script
echo '#!/bin/bash' > test.sh
echo 'echo "Hello"' >> test.sh
# Rendre exécutable
chmod +x test.sh
# Exécuter
./test.sh
Exercice 2 : Partage de dossier
# Créer un groupe
sudo groupadd partage
# Ajouter des utilisateurs
sudo usermod -aG partage utilisateur1
sudo usermod -aG partage utilisateur2
# Configurer le dossier
sudo chown :partage /partage
sudo chmod 2775 /partage
10. Résumé
Commande Description
ls -lVoir les permissions
chmodModifier les permissions
chownModifier le propriétaire
chgrpModifier le groupe
umaskPermissions par défaut
getfaclVoir ACL
setfaclModifier ACL
Maîtrise les permissions pour sécuriser ton système Linux ! 🔐
Complément: Permissions avancées
Introduction
Dans la leçon 3, nous avons vu les bases des permissions Linux. Ici, nous allons plus loin : les permissions spéciales (SUID, SGID, Sticky Bit), les ACL (Listes de Contrôle d'Accès), la gestion des fichiers setuid/setgid, et des techniques avancées pour administrer les droits sur un système.
Rappel : le système de permissions classique
Chaque fichier possède trois triplets de permissions :
chmod en notation octale avancée
Tu connais sûrement chmod 755 fichier. Mais il existe des combinaisons plus fines :
Les permissions spéciales
Quand un fichier à le bit SUID, il s'exécute avec les droits de son propriétaire, pas de l'utilisateur qui le lance. Exemple classique : passwd.
Quand tu changes ton mot de passe, tu modifies /etc/shadow — mais tu n'as pas le droit d'écrire dans ce fichier. Le programme passwd à le bit SUID root, donc il s'exécute avec les droits root.
⚠️ Sécurité : Le SUID est dangereux sur les scripts. Un programme SUID root mal sécurisé peut donner un shell root à un attaquant. Utilise-le avec parcimonie.
Sur un fichier : même principe que SUID, mais avec les droits du groupe. Sur un répertoire : tous les fichiers créés héritent du groupe du répertoire.
Sur un répertoire partagé (comme /tmp), le Sticky Bit empêche quiconque de supprimer les fichiers des autres.
Tout le monde peut écrire dans /srv/partage, mais chacun ne peut supprimer que ses propres fichiers.
Les ACL — Listes de Contrôle d'Accès
Les ACL permettent d'attribuer des permissions à plusieurs utilisateurs ou groupes sur un même fichier, au-delà du schéma classique propriétaire/groupe/autres.
Quand des ACL sont actives, un + apparaît dans ls -l :
Le mask ACL limite les permissions maximales accordées via ACL. Même si tu donnes rwx à alice, le mask peut les réduire.