Comprendre les permissions de fichiers Linux et comment les gérer
Les permissions de fichiers Linux sont l’un des aspects les plus fondamentaux — et les plus mal compris — de l’administration système. Que vous gériez un serveur web de production, déployiez des applications ou écriviez des scripts d’automatisation, une compréhension solide du modèle de permissions Linux est non-négociable. Si vous vous trompez, vous risquez des violations de données, des déploiements cassés ou des services verrouillés. Si vous le faites correctement, vous disposez d’un cadre de sécurité puissant et granulaire qui fonctionne en votre faveur.
Ce guide couvre tout ce que vous devez savoir : comment fonctionne le modèle de permissions, comment lire et modifier les permissions, comment gérer la propriété, et comment gérer les bits de permissions avancés comme SUID, SGID et le sticky bit.
Le modèle de permissions de fichiers Linux expliqué
Chaque fichier et répertoire dans un système Linux se voit attribuer un ensemble de droits d’accès. Ces droits sont divisés entre trois classes d’utilisateurs et trois types de permissions.
Les trois classes d’utilisateurs
| Classe | Description |
|---|---|
| propriétaire | L’utilisateur qui possède le fichier |
| groupe | Tous les utilisateurs appartenant au groupe assigné du fichier |
| autres | Tous les autres sur le système |
Les trois types de permissions
| Permission | Symbole | Signification |
|---|---|---|
| lecture | r | Afficher le contenu du fichier ou lister le contenu du répertoire |
| écriture | w | Modifier un fichier ou un répertoire |
| exécution | x | Exécuter un fichier en tant que programme, ou entrer/parcourir un répertoire |
Ensemble, ces neuf bits (trois classes × trois permissions) définissent le profil de contrôle d’accès complet pour chaque objet du système de fichiers.
Comment afficher les permissions de fichier avec ls -l
Le moyen le plus rapide d’inspecter les permissions est avec la commande ls -l :
ls -l myscript.shExemple de sortie :
-rwxr-xr-- 1 alice devs 2048 Jan 25 10:00 myscript.shVoici comment lire la chaîne de permissions caractère par caractère :
| Caractères | Signification |
|---|---|
- | Type de fichier (- = fichier régulier, d = répertoire, l = lien symbolique) |
rwx | Permissions du propriétaire : lecture, écriture, exécution |
r-x | Permissions du groupe : lecture, exécution (pas d’écriture) |
r-- | Permissions des autres : lecture uniquement |
Donc dans cet exemple, alice (le propriétaire) a un accès complet, les membres du groupe devs peuvent lire et exécuter le fichier, et tous les autres ne peuvent que le lire.
Modification des permissions avec chmod
La commande chmod modifie les permissions des fichiers. Elle supporte deux modes : symbolique et numérique (octal).
Mode symbolique
Le mode symbolique utilise des lettres et des opérateurs pour ajouter (+), supprimer (-), ou définir (=) les permissions :
chmod u+x myscript.sh # Add execute permission for the owner
chmod g-w myscript.sh # Remove write permission from the group
chmod o=r myscript.sh # Set read-only for others (exactly)
chmod a+x myscript.sh # Add execute for all (owner, group, others)Les classes cibles sont : u (utilisateur/propriétaire), g (groupe), o (autres), a (tous).
Mode numérique (octal)
Chaque type de permission a une valeur numérique : r = 4, w = 2, x = 1. Vous les additionnez pour obtenir un seul chiffre par classe.
| Octal | Binaire | Permissions |
|---|---|---|
7 | 111 | rwx |
6 | 110 | rw- |
5 | 101 | r-x |
4 | 100 | r-- |
0 | 000 | --- |
Exemples courants :
chmod 755 myscript.sh # Owner: rwx | Group: r-x | Others: r-x
chmod 644 file.txt # Owner: rw- | Group: r-- | Others: r--
chmod 700 script.sh # Owner: rwx | Group: --- | Others: ---
chmod 600 secret.key # Owner: rw- | Group: --- | Others: ---> Référence rapide : 755 est la norme pour les scripts et répertoires accessibles au public. 644 est la norme pour les fichiers de configuration lisibles. 600 est idéal pour les clés privées et les identifiants sensibles.
Gestion de la propriété avec chown et chgrp
Les permissions n’ont de sens que dans le contexte de la propriété. Les commandes chown et chgrp vous permettent d’assigner les fichiers au bon utilisateur et groupe.
Changer le propriétaire du fichier
chown alice file.txtChanger le groupe
chgrp devs file.txtChanger à la fois le propriétaire et le groupe simultanément
chown bob:admins file.txtAppliquer les modifications de manière récursive
Le flag -R applique les modifications de propriété à un répertoire et à tout son contenu — essentiel lors de la configuration des racines de documents du serveur web :
chown -R www-data:www-data /var/www/html/C’est une étape critique lors du déploiement d’applications web dans un environnement VPS Hosting, garantissant que le processus de votre serveur web a le bon accès pour servir les fichiers.
Bits de permission spéciaux : SUID, SGID et Sticky Bit
Au-delà des neuf bits de permission standard, Linux supporte trois modes spéciaux qui modifient le comportement par défaut de manière importante.
1. SUID — Set User ID
S’applique à : Fichiers exécutables
Lorsque le bit SUID est défini sur un exécutable, il s’exécute avec les privilèges du propriétaire du fichier, et non de l’utilisateur qui l’a lancé.
chmod u+s /usr/bin/passwdls -l output:
-rwsr-xr-x 1 root root 54256 Jan 10 08:00 /usr/bin/passwdRemarquez le s à la place du x du propriétaire. C’est ainsi que /usr/bin/passwd peut mettre à jour /etc/shadow (un fichier appartenant à root) même lorsqu’il est exécuté par un utilisateur ordinaire.
> Note de sécurité : Soyez très prudent lors de la définition de SUID sur des scripts personnalisés. Un binaire SUID mal configuré est un vecteur classique d’escalade de privilèges.
2. SGID — Set Group ID
S’applique à : Fichiers exécutables et répertoires
- Sur les fichiers : Le fichier s’exécute avec les privilèges de groupe du propriétaire du groupe du fichier.
- Sur les répertoires : Les nouveaux fichiers créés dans le répertoire héritent automatiquement du groupe du répertoire, plutôt que du groupe primaire de l’utilisateur qui les crée.
chmod g+s /opt/projectls -l output:
drwxr-sr-x 2 alice devs 4096 Jan 25 10:00 /opt/projectSGID sur les répertoires est extrêmement utile pour les dossiers de développement partagés où plusieurs membres de l’équipe ont besoin d’une propriété de groupe cohérente sur tous les nouveaux fichiers.
3. Sticky Bit
S’applique à : Répertoires
Lorsque le sticky bit est défini sur un répertoire, seul le propriétaire du fichier (ou root) peut supprimer ou renommer ce fichier — même si d’autres utilisateurs ont la permission d’écriture sur le répertoire.
chmod +t /shared/folderls -ld output for /tmp:
drwxrwxrwt 10 root root 4096 Jan 28 12:00 /tmpLe t à la fin indique que le sticky bit est actif. C’est pourquoi /tmp est accessible en écriture à tous, mais les utilisateurs ne peuvent pas supprimer les fichiers temporaires les uns des autres.
Comprendre umask — Contrôle des permissions par défaut
Quand un nouveau fichier ou répertoire est créé, Linux ne lui donne pas les permissions maximales. Au lieu de cela, il applique un umask (masque de création de fichier utilisateur) qui soustrait les permissions par défaut.
Vérifiez votre umask actuel
umaskSortie courante : 0022
Comment fonctionne umask
| Objet | Maximum par défaut | Avec umask `0022` | Résultat |
|---|---|---|---|
| Fichier | 666 (rw-rw-rw-) | 666 - 022 | 644 (rw-r–r–) |
| Répertoire | 777 (rwxrwxrwx) | 777 - 022 | 755 (rwxr-xr-x) |
> Remarque : Linux ne définit jamais le bit d’exécution sur les fichiers nouvellement créés par défaut, quel que soit umask.
Définir un umask temporaire
umask 0077 # New files: 600 (rw-------), New dirs: 700 (rwx------)Ceci est utile dans les scripts qui créent des fichiers temporaires sensibles. Pour une modification permanente, ajoutez la commande umask au fichier de profil de votre shell (par exemple, ~/.bashrc ou /etc/profile).
Corrections de permissions récursives
Une tâche courante dans le monde réel est de réinitialiser les permissions sur un répertoire de projet entier — par exemple, après un déploiement défaillant ou un téléchargement FTP qui a endommagé les permissions. La clé est de définir des permissions différentes pour les répertoires et les fichiers, car les répertoires ont besoin du bit d’exécution pour être traversables.
# Set all directories to 755
find /var/www/myapp -type d -exec chmod 755 {} ;
# Set all files to 644
find /var/www/myapp -type f -exec chmod 644 {} ;Si votre application a des scripts exécutables spécifiques, corrigez-les séparément après :
chmod 755 /var/www/myapp/bin/*.shCe modèle est essentiel pour quiconque gère des environnements d’hébergement web. Si vous exécutez des applications PHP, Python ou Node.js sur un VPS avec cPanel, les permissions de fichiers incorrectes sont l’une des causes les plus courantes des erreurs 403 Forbidden et de l’échec de l’exécution des scripts.
Référence pratique des permissions pour les scénarios courants
| Scénario | Permissions recommandées | Commande |
|---|---|---|
| Fichiers web publics (HTML, CSS, JS) | 644 | chmod 644 index.html |
| Répertoires web | 755 | chmod 755 /var/www/html |
| Scripts PHP/Python | 644 ou 755 | Dépend de la méthode d’exécution |
| Clés SSH privées | 600 | chmod 600 ~/.ssh/id_rsa |
Répertoire .ssh | 700 | chmod 700 ~/.ssh |
| Répertoire de projet partagé | 2775 (SGID) | chmod 2775 /opt/project |
| Répertoire temp accessible en écriture | 1777 (sticky) | chmod 1777 /tmp/shared |
| Fichiers de configuration avec secrets | 600 | chmod 600 .env |
Autorisations de fichiers Linux et sécurité des serveurs
Comprendre les autorisations de fichiers n'est pas qu'un exercice académique — cela a des implications directes et pratiques pour la sécurité et la stabilité du serveur.
Erreurs de sécurité courantes à éviter :
- Définir
777sur les répertoires web. Cela donne à tout le monde un accès en lecture, écriture et exécution — une vulnérabilité critique si votre serveur est compromis ou si une injection de code PHP est possible. - Laisser les fichiers de configuration lisibles par tous. Des fichiers comme
.env,wp-config.phpou les identifiants de base de données doivent être600ou640au maximum. - Ignorer la propriété. Même si les autorisations semblent correctes, si le mauvais utilisateur possède un fichier, votre serveur web ou daemon d'application peut ne pas pouvoir le lire.
chownrécursif sur les répertoires système. Exécuterchown -Rsans précaution sur/etcou/usrpeut casser tout votre système.
Si vous exécutez un environnement de production sur Dedicated Servers, la mise en œuvre d'une politique d'autorisation stricte est l'une des premières étapes de durcissement que vous devriez prendre après la configuration initiale.
Pour les équipes gérant plusieurs sites ou applications, VPS Control Panels peuvent simplifier la gestion des autorisations via des gestionnaires de fichiers graphiques, bien que la maîtrise de la ligne de commande reste essentielle pour les configurations avancées.
Référence rapide des commandes
# View permissions
ls -l filename
ls -ld directory/
# Change permissions (symbolic)
chmod u+x file # Add execute for owner
chmod g-w file # Remove write for group
chmod o=r file # Set read-only for others
chmod a+r file # Add read for all
# Change permissions (numeric)
chmod 755 file # rwxr-xr-x
chmod 644 file # rw-r--r--
chmod 600 file # rw-------
chmod 700 file # rwx------
# Change ownership
chown user file
chgrp group file
chown user:group file
chown -R user:group directory/
# Special bits
chmod u+s file # Set SUID
chmod g+s directory # Set SGID
chmod +t directory # Set sticky bit
# umask
umask # Show current umask
umask 0022 # Set umask for session
# Recursive fixes
find /path -type d -exec chmod 755 {} ;
find /path -type f -exec chmod 644 {} ;Conclusion
Les permissions de fichiers Linux forment l’épine dorsale de la sécurité du système, du contrôle d’accès multi-utilisateur et du déploiement fiable d’applications. Le modèle est élégant dans sa simplicité — trois classes, trois types de permissions, une poignée de bits spéciaux — mais suffisamment puissant pour sécuriser tout, d’une machine de développement personnelle à un serveur de production à fort trafic.
Maîtriser chmod, chown, umask et les bits de permissions spéciaux vous donne la confiance pour déployer les applications correctement, résoudre rapidement les erreurs d’accès et renforcer vos serveurs contre les accès non autorisés.
Que vous commenciez avec l’Hébergement Web Partagé ou que vous passiez à un environnement d’Hébergement VPS entièrement géré, une compréhension solide des permissions de fichiers Linux est l’une des compétences à plus fort effet de levier que vous pouvez développer en tant qu’administrateur système ou développeur. Investissez le temps pour la comprendre en profondeur — vos serveurs (et vos utilisateurs) vous en remercieront.
sur tous les services d'hébergement