Débutant ⏱ 11 min Mis à jour le 29 juillet 2026

Comprendre et gérer les permissions de fichiers sous Linux

Un simple chmod 777 peut ouvrir une faille béante. Voici comment vraiment comprendre les permissions Linux — rwx, propriétaire, groupe — pour sécuriser vos fichiers sans tâtonner.

Lire les permissions Linux avec ls -l

Les permissions Linux déterminent quels utilisateurs peuvent lire, modifier ou exécuter un fichier. Elles contrôlent également l’accès aux dossiers de votre VPS.

Pour afficher les droits d’un fichier :

ls -l fichier.txt

Vous obtenez une ligne semblable à celle-ci :

-rwxr-xr-- 1 alice developpeurs 2048 29 juil. 14:30 script.sh

La première partie représente les permissions :

-rwxr-xr--

Elle se décompose ainsi :

-  rwx  r-x  r--
│   │    │    └── autres utilisateurs
│   │    └─────── groupe propriétaire
│   └──────────── utilisateur propriétaire
└──────────────── type de fichier

Le premier caractère indique le type :

CaractèreType
-Fichier classique
dDossier
lLien symbolique
cPériphérique de caractères
bPériphérique de blocs

Dans notre exemple :

-rwxr-xr--

le propriétaire peut lire, modifier et exécuter le fichier. Les membres du groupe peuvent le lire et l’exécuter. Les autres utilisateurs peuvent uniquement le lire.

La commande suivante affiche les fichiers cachés et les droits du dossier courant :

ls -la

Pour connaître les permissions de chaque élément d’un chemin :

namei -l /var/www/mon-site/index.html

Cette commande est utile lorsqu’un service rencontre une erreur Permission denied malgré des droits apparemment corrects sur le fichier final.

Comprendre utilisateur, groupe et autres

Chaque fichier Linux possède généralement :

  • un utilisateur propriétaire ;
  • un groupe propriétaire ;
  • des droits pour les autres utilisateurs.

Dans cette ligne :

-rw-r----- 1 alice developpeurs 1024 29 juil. config.ini

le propriétaire est :

alice

et le groupe est :

developpeurs

Les permissions sont réparties ainsi :

CatégorieSymbolePersonnes concernées
UtilisateuruPropriétaire du fichier
GroupegMembres du groupe propriétaire
AutresoTous les autres utilisateurs
TousaUtilisateur, groupe et autres

Linux examine d’abord si le processus appartient au propriétaire. Sinon, il vérifie s’il appartient au groupe concerné. Dans les autres cas, il applique les droits du dernier bloc.

Le compte root dispose de privilèges très élevés, mais cela ne justifie pas de lancer toutes les applications avec ce compte. Une application compromise exécutée comme root peut affecter tout le système.

Appliquez le principe du moindre privilège : chaque utilisateur et chaque service doivent recevoir uniquement les droits nécessaires à leur fonctionnement.

Comprendre rwx pour les fichiers et les dossiers

Les lettres r, w et x n’ont pas exactement le même effet sur un fichier et sur un dossier.

PermissionSur un fichierSur un dossier
r — readLire le contenuLister les noms présents
w — writeModifier le contenuCréer, supprimer ou renommer des éléments
x — executeExécuter le fichierTraverser et accéder aux éléments
-Droit absentDroit absent

Pour un script :

-rwxr-xr-x

le droit x permet son exécution :

./script.sh

Pour un dossier, le droit x permet de le traverser :

cd /var/www/mon-site

Un utilisateur peut parfois connaître le nom d’un fichier sans pouvoir y accéder si le dossier parent ne possède pas le droit d’exécution approprié.

Exemple :

drw-r--r--

Ce dossier possède des droits de lecture, mais aucun droit x. Son contenu peut devenir difficile ou impossible à consulter correctement.

Pour un dossier partagé en lecture, une configuration comme celle-ci est plus cohérente :

drwxr-xr-x

Comprendre la notation octale

Les permissions peuvent être représentées par des chiffres :

r = 4
w = 2
x = 1

Vous additionnez les valeurs pour chaque catégorie.

ValeurPermissionsSignification
0---Aucun droit
1--xExécution uniquement
2-w-Écriture uniquement
3-wxÉcriture et exécution
4r--Lecture uniquement
5r-xLecture et exécution
6rw-Lecture et écriture
7rwxLecture, écriture et exécution

La permission :

rwxr-xr-x

devient :

755

car :

Utilisateur : rwx = 4 + 2 + 1 = 7
Groupe      : r-x = 4 + 0 + 1 = 5
Autres      : r-x = 4 + 0 + 1 = 5

Autre exemple :

rw-r--r--

correspond à :

644

Cette notation est fréquemment utilisée avec chmod.

Modifier les permissions avec chmod

La commande chmod modifie les droits d’un fichier ou d’un dossier.

Utiliser la notation symbolique

Ajouter le droit d’exécution au propriétaire :

chmod u+x script.sh

Retirer l’écriture au groupe et aux autres :

chmod go-w fichier.txt

Ajouter la lecture à tous :

chmod a+r document.txt

Définir exactement les droits du propriétaire :

chmod u=rw fichier.txt

Vous pouvez combiner plusieurs opérations :

chmod u+x,g-w,o-r script.sh

Utiliser la notation octale

Pour un fichier classique accessible en lecture :

chmod 644 fichier.txt

Pour un script exécutable :

chmod 755 script.sh

Pour un fichier contenant un secret :

chmod 600 .env

Pour un dossier privé :

chmod 700 ~/.ssh

Modifier récursivement avec -R

La commande suivante applique les droits à tout un dossier :

chmod -R 755 /var/www/mon-site

Elle est souvent utilisée trop rapidement. Elle rend aussi les fichiers ordinaires exécutables, ce qui n’est généralement pas nécessaire.

Préférez des droits différents pour les dossiers et les fichiers :

find /var/www/mon-site \
  -type d \
  -exec chmod 755 {} \;

find /var/www/mon-site \
  -type f \
  -exec chmod 644 {} \;

Utilisez chmod -R avec prudence. Une mauvaise commande récursive peut modifier des milliers de fichiers et empêcher une application ou SSH de fonctionner.

Changer le propriétaire avec chown et chgrp

chmod modifie les droits. chown modifie le propriétaire et éventuellement le groupe.

Changer le propriétaire :

sudo chown alice fichier.txt

Changer le propriétaire et le groupe :

sudo chown alice:developpeurs fichier.txt

Changer uniquement le groupe avec chown :

sudo chown :developpeurs fichier.txt

Ou avec chgrp :

sudo chgrp developpeurs fichier.txt

Pour modifier récursivement un projet :

sudo chown -R alice:developpeurs /home/alice/mon-projet

Avant d’utiliser -R, vérifiez soigneusement le chemin :

ls -ld /home/alice/mon-projet

Pour un site Nginx, le propriétaire dépend de votre méthode de déploiement. Vous pouvez conserver les fichiers sous votre compte, avec un groupe lisible par le serveur web :

sudo chown -R alice:www-data /var/www/mon-site

Pour une application exécutée par un service systemd dédié :

sudo chown -R monapp:monapp /opt/mon-app

N’attribuez pas automatiquement tous les fichiers à www-data. Le serveur web doit uniquement posséder les accès nécessaires.

Le guide pour transférer des fichiers vers un VPS explique comment déposer les fichiers dans votre dossier personnel avant de les déplacer vers leur destination finale.

Utiliser des valeurs sûres et éviter chmod 777

Voici des valeurs courantes, à adapter au contexte :

PermissionUsage fréquent
755Dossiers publics et scripts exécutables
750Dossiers accessibles au propriétaire et au groupe
700Dossiers privés comme .ssh
644Fichiers publics non exécutables
640Configurations lisibles par un groupe
600Secrets, fichiers .env, clés privées
400Secret en lecture seule pour le propriétaire

Les clés SSH privées doivent être strictement protégées :

chmod 600 ~/.ssh/id_ed25519
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

Un fichier .env contenant un token ou un mot de passe :

chmod 600 /etc/mon-app/mon-app.env

N’utilisez jamais chmod 777 comme solution générique à une erreur de permissions.

La valeur 777 signifie :

rwxrwxrwx

Le propriétaire, le groupe et tous les autres utilisateurs peuvent lire, modifier et exécuter l’élément.

Sur un dossier, cela peut permettre à d’autres comptes ou processus de créer, remplacer ou supprimer des fichiers. Sur un serveur multi-utilisateur ou après la compromission d’un service, ce droit facilite les modifications non autorisées.

Si une application réclame 777, recherchez plutôt :

  1. quel utilisateur exécute réellement le service ;
  2. quel groupe doit accéder aux fichiers ;
  3. quels dossiers doivent être modifiables ;
  4. quels fichiers doivent rester en lecture seule ;
  5. si le propriétaire est incorrect.

Utilisez ensuite chown, chgrp et des droits ciblés.

Pour une analyse complète des comptes, services et accès, consultez le guide pour sécuriser votre serveur Linux.

En résumé

  • Les permissions Linux utilisent trois blocs : utilisateur, groupe et autres.
  • r autorise la lecture, w l’écriture et x l’exécution ou la traversée d’un dossier.
  • Consultez les droits avec ls -l ou ls -la.
  • La notation octale utilise 4 pour lire, 2 pour écrire et 1 pour exécuter.
  • 755 correspond à rwxr-xr-x.
  • 644 correspond à rw-r--r--.
  • Utilisez chmod pour modifier les droits.
  • Utilisez chown ou chgrp pour changer le propriétaire ou le groupe.
  • Appliquez chmod -R uniquement après avoir vérifié précisément le chemin et l’effet attendu.
  • Utilisez généralement 755 pour les dossiers publics et 644 pour les fichiers ordinaires.
  • Protégez les secrets avec 600 et les dossiers privés avec 700.
  • N’utilisez jamais chmod 777 comme correction rapide.
  • Appliquez toujours le principe du moindre privilège.
  • Pour gérer vos permissions Linux sur un VPS hébergé en France avec stockage NVMe, Anti-DDoS L3/L4/L7 inclus, panel de gestion et support francophone, découvrez les offres VPS TalCloud.