Comprendre les permissions de fichiers Linux et comment les gérer
L’un des fondements clés de la sécurité des systèmes Linux et de l’architecture multi-utilisateurs est son modèle de permissions de fichiers. Contrairement à Windows, Linux applique strictement la propriété et le contrôle d’accès pour chaque fichier et répertoire du système. Maîtriser les permissions de fichiers n’est pas seulement une question de sécurité — c’est essentiel pour gérer des serveurs, déployer des logiciels, exécuter des scripts et automatiser des tâches.
Le Modèle de Permission de Fichiers Linux
Chaque fichier et répertoire dans Linux a trois types de droits d’accès, attribués à trois types d’utilisateurs :
| Classe d’Utilisateur | Description |
|---|---|
| propriétaire | L’utilisateur qui possède le fichier |
| groupe | Utilisateurs dans le groupe du fichier |
| autres | Tous les autres utilisateurs du système |
Chaque classe peut se voir attribuer trois types de permissions :
| Permission | Symbole | Signification |
|---|---|---|
| lecture | r | Voir le contenu du fichier / lister le répertoire |
| écriture | w | Modifier le fichier ou le répertoire |
| exécution | x | Exécuter le fichier ou accéder au répertoire |
Visualiser les Permissions avec ls -l
Utilisez la commande ls -l pour afficher les permissions des fichiers :
ls -l myscript.sh
Sortie :
-rwxr-xr-- 1 alice devs 2048 Jan 25 10:00 myscript.sh
Détails :
- – → fichier régulier
- rwx → propriétaire (lecture/écriture/exécution)
- r-x → groupe (lecture/exécution)
- r– → autres (lecture seule)
Changer les Permissions avec chmod
📌 Mode Symbolique :
chmod u+x myscript.sh # Add execute to user chmod g-w myscript.sh # Remove write from group chmod o=r myscript.sh # Set read-only for others
📌 Mode Numérique :
chmod 755 myscript.sh # rwx for owner, rx for group, rx for others
| Octal | Signification |
|---|---|
| 7 | rwx |
| 6 | rw- |
| 5 | r-x |
| 4 | r– |
| 0 | — |
Exemple :
chmod 644 file.txt # owner: rw-, group: r--, others: r-- chmod 700 script.sh # owner: rwx, group/others: ---
Gérer la Propriété avec chown et chgrp
Changer le propriétaire du fichier :
chown alice file.txt
Changer de groupe :
chgrp devs file.txt
Changer les deux :
chown bob:admins file.txt
Utilisez -R pour appliquer les changements de manière récursive :
chown -R www-data:www-data /var/www/
Bits de Permission Spéciaux
Linux prend en charge trois modes spéciaux qui modifient le comportement par défaut :
1. SUID (Set User ID)
- S’applique aux fichiers exécutables
- S’exécute avec les privileges du propriétaire, pas ceux de l’appelant
chmod u+s /usr/bin/passwd
🔍 sortie ls -l : -rwsr-xr-x
Cas d’utilisation : /usr/bin/passwd doit s’exécuter en tant que root pour mettre à jour /etc/shadow.
SGID (Set Group ID) s
- Sur les fichiers : s’exécute avec le privilège du groupe du fichier
- Sur les répertoires : les nouveaux fichiers héritent du groupe
chmod g+s /opt/project
🔍 sortie ls -l : drwxr-sr-x
Utile dans les dossiers de développement partagés.
Sticky Bit t
- Sur les répertoires : seul le propriétaire peut supprimer/renommer ses fichiers
- Commun dans /tmp pour protéger les fichiers des utilisateurs
chmod +t /shared/folder
ls -ld /tmpdrwxrwxrwt 10 root root 4096 Jan 28 12:00 /tmp
Comprendre umask
Le umask définit les permissions par défaut pour les nouveaux fichiers/répertoires :
Vérifiez la valeur actuelle : umask
Valeur commune : 0022
| Fichier | Permissions par défaut | Avec umask 0022 |
|---|---|---|
| Fichier | 666 → 644 | rw-r–r– |
| Répertoire | 777 → 755 | rwxr-xr-x |
Définir umask temporaire :
umask 0077 # Files: 600, Dirs: 700
Corrections de Permissions Récursives
Définir les permissions de dossier et de fichier séparément :
find /my/project -type d -exec chmod 755 {} ; find /my/project -type f -exec chmod 644 {} ;
Conclusion
Les permissions de fichiers Linux offrent un contrôle d’accès granulaire pour la sécurité, les environnements multi-utilisateurs et l’automatisation. Comprendre comment visualiser, changer et appliquer les permissions vous permet de gérer les serveurs en toute confiance, de protéger les données et de collaborer en toute sécurité.
Que vous déployiez des applications web, gériez des serveurs cloud ou construisiez des scripts shell — connaître les commandes chmod, chown, umask et les bits de permission spéciaux est essentiel.
