Économisez 15% sur tous les services d'hébergement

Testez vos compétences et obtenez Réduction sur tout plan d'hébergement

Utilisez le code : Skills Commencer
Sections
Linux Serveurs virtuels Systèmes d'exploitation

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

ClasseDescription
propriétaireL’utilisateur qui possède le fichier
groupeTous les utilisateurs appartenant au groupe assigné du fichier
autresTous les autres sur le système

Les trois types de permissions

PermissionSymboleSignification
lecturerAfficher le contenu du fichier ou lister le contenu du répertoire
écriturewModifier un fichier ou un répertoire
exécutionxExé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.sh

Exemple de sortie :

-rwxr-xr-- 1 alice devs 2048 Jan 25 10:00 myscript.sh

Voici comment lire la chaîne de permissions caractère par caractère :

CaractèresSignification
-Type de fichier (- = fichier régulier, d = répertoire, l = lien symbolique)
rwxPermissions du propriétaire : lecture, écriture, exécution
r-xPermissions 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.

OctalBinairePermissions
7111rwx
6110rw-
5101r-x
4100r--
0000---

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.txt

Changer le groupe

chgrp devs file.txt

Changer à la fois le propriétaire et le groupe simultanément

chown bob:admins file.txt

Appliquer 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/passwd

ls -l output:

-rwsr-xr-x 1 root root 54256 Jan 10 08:00 /usr/bin/passwd

Remarquez 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/project

ls -l output:

drwxr-sr-x 2 alice devs 4096 Jan 25 10:00 /opt/project

SGID 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/folder

ls -ld output for /tmp:

drwxrwxrwt 10 root root 4096 Jan 28 12:00 /tmp

Le 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

umask

Sortie courante : 0022

Comment fonctionne umask

ObjetMaximum par défautAvec umask `0022`Résultat
Fichier666 (rw-rw-rw-)666 - 022644 (rw-r–r–)
Répertoire777 (rwxrwxrwx)777 - 022755 (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/*.sh

Ce 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énarioPermissions recommandéesCommande
Fichiers web publics (HTML, CSS, JS)644chmod 644 index.html
Répertoires web755chmod 755 /var/www/html
Scripts PHP/Python644 ou 755Dépend de la méthode d’exécution
Clés SSH privées600chmod 600 ~/.ssh/id_rsa
Répertoire .ssh700chmod 700 ~/.ssh
Répertoire de projet partagé2775 (SGID)chmod 2775 /opt/project
Répertoire temp accessible en écriture1777 (sticky)chmod 1777 /tmp/shared
Fichiers de configuration avec secrets600chmod 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 777 sur 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.php ou les identifiants de base de données doivent être 600 ou 640 au 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.
  • chown récursif sur les répertoires système. Exécuter chown -R sans précaution sur /etc ou /usr peut 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.