Corriger une permission refusée sous Linux : méthode sûre pour retrouver l’accès

Corriger une permission refusée sous Linux : méthode sûre pour retrouver l’accès
Pour corriger une permission refusée sous Linux, commencez par identifier l’utilisateur actif, le propriétaire, le groupe et les droits du fichier avec id et ls -l. Ajustez ensuite uniquement le droit bloquant avec chmod, ou la propriété avec chown, sans ouvrir le fichier à tous les utilisateurs.
Une erreur « Permission denied » ne signale pas forcément un fichier endommagé. Linux applique plusieurs couches de contrôle : permissions classiques, appartenance à un groupe, droits sur les dossiers parents, ACL, montage en lecture seule et, selon la distribution, politique SELinux. Le diagnostic doit donc précéder la correction.
Sommaire
En bref
🔍 La commande ls -l affiche les droits, le propriétaire et le groupe d’un fichier ou dossier.
⚙️ Utilisez chmod pour modifier les droits et chown pour corriger le propriétaire ou le groupe.
⚠️ La commande chmod 777 donne lecture, écriture et exécution à tous : elle masque souvent le problème au lieu de le résoudre.
🔒 Si les droits semblent corrects, vérifiez les ACL, SELinux, les attributs immuables et un éventuel montage en lecture seule.
Pourquoi Linux affiche-t-il « Permission denied » ?
L’erreur « Permission denied » apparaît lorsque l’utilisateur qui lance une commande ne possède pas le droit nécessaire sur un fichier, un programme ou un répertoire. Linux est un système multiutilisateur : chaque ressource est associée à un propriétaire, à un groupe et à des droits distincts pour les autres comptes.
Les permissions Linux sont un mécanisme qui contrôle la lecture, l’écriture et l’exécution pour le propriétaire, le groupe et les autres utilisateurs. Les trois droits sont représentés par les lettres r pour la lecture, w pour l’écriture et x pour l’exécution.
| Droit | Sur un fichier | Sur un dossier | Exemple de blocage |
|---|---|---|---|
r — lecture |
Lire le contenu | Voir les noms des éléments | Impossible d’ouvrir un fichier |
w — écriture |
Modifier ou supprimer le contenu | Créer, renommer ou supprimer des éléments | Impossible d’enregistrer une modification |
x — exécution |
Lancer un programme ou script | Traverser le dossier | Impossible d’exécuter un script ou d’entrer dans un dossier |
Une ligne comme -rwxr-xr-- se lit de gauche à droite : le propriétaire peut lire, écrire et exécuter ; le groupe peut lire et exécuter ; les autres peuvent seulement lire. La documentation officielle de GNU Coreutils sur l’affichage des fichiers détaille cette représentation.
La correction sûre ne consiste pas à donner tous les droits : elle consiste à identifier le droit précis qui manque au compte réellement utilisé.
Comment diagnostiquer une erreur de permission refusée sous Linux ?
Le diagnostic commence par trois vérifications : connaître l’identité active, afficher les droits de la ressource et contrôler les dossiers qui mènent jusqu’à elle. Cette séquence évite de modifier un fichier alors que le blocage vient d’un répertoire parent, d’un groupe absent ou d’un système de fichiers protégé.
Exécutez les commandes de diagnostic avant toute commande de correction, puis conservez leur sortie si le problème persiste. Remplacez /chemin/vers/fichier par le chemin réel de la ressource concernée.

Étape 1 : identifier l’utilisateur qui reçoit le refus
Lancez la commande suivante dans le même terminal que celui qui affiche l’erreur :
id
groups
La commande id affiche notamment l’utilisateur courant, son groupe principal et ses groupes supplémentaires. La commande groups fournit une vue plus courte des groupes ; elle devient utile lorsqu’un dossier est partagé par un groupe Linux.
Étape 2 : afficher les droits, le propriétaire et le groupe
Inspectez ensuite la ressource bloquée :
ls -l /chemin/vers/fichier
ls -ld /chemin/vers/dossier
La première commande convient à un fichier. La seconde affiche les droits du dossier lui-même, plutôt que son contenu. Repérez les trois blocs de droits, puis comparez le propriétaire et le groupe affichés avec le résultat de id.
Étape 3 : contrôler le chemin du dossier
Un fichier peut avoir des droits corrects et rester inaccessible si un dossier parent ne possède pas le droit x pour votre utilisateur. Vérifiez donc chaque niveau du chemin, en remontant depuis le dossier cible.
ls -ld /chemin
ls -ld /chemin/vers
ls -ld /chemin/vers/dossier
Un accès refusé au dossier provient souvent de cette traversée impossible. Le droit x sur un répertoire n’autorise pas à modifier son contenu : il autorise seulement l’accès aux éléments dont le nom est connu.
Comment corriger les permissions Linux avec chmod ?
La commande chmod modifie les droits d’accès Linux sans changer le propriétaire. Utilisez-la quand le bon utilisateur possède déjà le fichier, mais qu’un droit de lecture, d’écriture ou d’exécution manque. La notation symbolique est la plus lisible pour une correction ponctuelle.
Ajoutez ou retirez un droit ciblé plutôt que de remplacer sans raison l’ensemble des permissions existantes. La documentation officielle de GNU Coreutils sur chmod décrit les notations symboliques et numériques.
Étape 4 : ajouter seulement le droit nécessaire
- Rendre un script exécutable pour son propriétaire : exécutez
chmod u+x script.sh. - Autoriser la lecture au groupe : exécutez
chmod g+r rapport.txt. - Autoriser l’accès à un dossier pour le groupe : exécutez
chmod g+rx dossier-partage. - Vérifier le résultat : relancez
ls -lavant de répéter la commande initiale.
La commande chmod +x script.sh est souvent utilisée pour rendre un script exécutable. La forme u+x est plus explicite : elle limite l’ajout du droit d’exécution au propriétaire du fichier.
Étape 5 : employer la notation numérique seulement si elle correspond au besoin
La notation octale additionne les valeurs 4 pour la lecture, 2 pour l’écriture et 1 pour l’exécution. Par exemple, chmod 755 fichier donne tous les droits au propriétaire, puis lecture et exécution au groupe et aux autres utilisateurs.
chmod 755 script.sh
chmod 600 ~/.ssh/id_rsa
Le mode 600 est couramment requis pour une clé privée SSH : seul son propriétaire peut la lire ou la modifier. Si la clé ne vous appartient pas, corrigez aussi son propriétaire avant de relancer le client SSH.
Un droit plus large n’est pas une preuve de correction : un droit minimal et vérifié est une correction durable.
Quand faut-il utiliser chown ou modifier un groupe Linux ?
La commande chown corrige le propriétaire d’un fichier Linux, ainsi que son groupe si vous indiquez les deux valeurs. Utilisez cette approche lorsqu’un fichier personnel a été créé avec sudo, restauré depuis une sauvegarde ou copié depuis un autre compte.
La syntaxe suivante associe le fichier à un utilisateur et à un groupe précis :
sudo chown utilisateur:groupe /chemin/vers/fichier
Changez la propriété d’un fichier seulement si vous savez quel compte doit l’administrer au quotidien. Dans un dossier partagé, le groupe est souvent la solution la plus propre : l’utilisateur concerné rejoint le groupe autorisé, puis le dossier reçoit les droits adaptés au groupe.
- Utilisez
chown utilisateur:groupe fichierpour modifier propriétaire et groupe en une commande. - Utilisez
chgrp groupe fichierlorsque seul le groupe doit changer. - Accordez
g+rwsur un fichier partagé si les membres du groupe doivent le modifier. - Accordez
g+rxsur un dossier partagé pour permettre la traversée et la lecture.
Les distributions ne gèrent pas toutes les groupes et interfaces d’administration de la même manière. Pour situer ces notions dans une distribution accessible aux débutants, consultez aussi les bases de Manjaro Linux.
Utiliser sudo peut-il résoudre une permission refusée ?
sudo lance une commande avec des privilèges administrateur lorsque votre compte y est autorisé. Cette élévation est pertinente pour modifier un fichier système ou une ressource administrée par root. Elle ne doit pas devenir une réponse automatique à chaque message d’accès refusé.
Une commande lancée avec sudo peut créer des fichiers appartenant à root dans votre dossier personnel. Ce mécanisme explique ensuite certaines erreurs de propriété lors d’une utilisation normale, sans privilèges élevés.
Étape 6 : limiter sudo à la commande qui en a besoin
Préférez une commande ciblée, comme sudo chown utilisateur:utilisateur fichier, plutôt qu’un terminal administrateur ouvert longtemps. Vérifiez toujours le chemin saisi : une commande de propriété ou de permissions exécutée sur le mauvais dossier peut affecter de nombreux fichiers.
Une erreur « sudo: permission denied » ou un refus après sudo peut relever d’une règle d’administration, d’un montage en lecture seule, d’une ACL ou de SELinux. L’élévation de privilèges ne contourne pas toutes les protections du système.
Quels cas particuliers vérifier si chmod et chown ne suffisent pas ?
Lorsque les permissions POSIX et la propriété semblent correctes, le blocage peut provenir d’une couche supplémentaire. Vérifiez ce point avant de multiplier les commandes récursives ou de modifier les droits d’un dossier entier.
Un fichier inaccessible après chmod peut être soumis à une ACL, à SELinux, à un attribut immuable ou à un système de fichiers monté en lecture seule.
Script qui refuse de s’exécuter
Un script nécessite un droit d’exécution et une première ligne valide indiquant l’interpréteur, par exemple #!/bin/bash. Ajoutez d’abord le droit requis, puis lancez le script depuis son dossier ou avec son chemin explicite.
chmod u+x script.sh
./script.sh
ACL : des droits supplémentaires parfois invisibles dans ls -l
Les listes de contrôle d’accès, ou ACL, peuvent accorder ou restreindre un accès spécifique au-delà des droits classiques. Contrôlez leur présence avec la commande suivante :
getfacl /chemin/vers/fichier
La commande setfacl sert à modifier une ACL, mais une modification doit rester ciblée et documentée. Une ACL mal conçue complique les diagnostics futurs, surtout dans un dossier partagé.
SELinux, attribut immuable et système de fichiers en lecture seule
Sur les systèmes où SELinux est activé, une politique de sécurité peut bloquer l’accès malgré des permissions POSIX correctes. Vérifiez son état avec getenforce, puis examinez les événements pertinents avec ausearch si l’outil est disponible.
getenforce
lsattr /chemin/vers/fichier
mount | grep /chemin/vers/dossier
La commande lsattr permet notamment de repérer un attribut immuable. Un système de fichiers monté en lecture seule empêche toute modification, même avec les droits attendus ; cherchez alors la cause du montage plutôt que de changer les permissions.
Comparer chmod, chown et les ACL : quelle solution choisir ?
Les commandes chmod, chown et setfacl répondent à des causes différentes. Choisir la bonne commande réduit le risque d’accorder des droits inutiles et facilite l’administration du dossier dans le temps.
| Outil | À utiliser quand | Exemple | Limite principale |
|---|---|---|---|
chmod |
Un droit lecture, écriture ou exécution manque | chmod u+x script.sh |
Ne change ni le propriétaire ni l’appartenance au groupe |
chown |
Le fichier appartient au mauvais compte ou groupe | sudo chown alice:projet fichier |
Ne définit pas à lui seul les droits d’accès |
setfacl |
Un utilisateur précis doit recevoir une exception | ACL ciblée sur un fichier ou dossier | Augmente la complexité du suivi des droits |
Erreurs fréquentes lors de la correction des droits d’accès Linux
- Appliquer
chmod 777: cette commande donne tous les droits à tous les utilisateurs. Elle augmente les risques de modification ou d’exécution non souhaitée. - Utiliser
sudopour travailler dans son dossier personnel : des fichiers détenus parrootpeuvent ensuite bloquer les applications lancées normalement. - Lancer
chmod -Rouchown -Rsans contrôler le chemin : une récursion touche tous les éléments descendants et peut casser des droits attendus. - Oublier le droit
xsur un dossier parent : un fichier lisible reste inaccessible si le chemin n’est pas traversable. - Traiter un disque en lecture seule comme un simple problème de chmod : les permissions ne peuvent pas modifier l’état de montage du système de fichiers.
Bonnes pratiques pour éviter une nouvelle erreur de permissions
Organisez les fichiers partagés autour d’un groupe dédié plutôt que de modifier les droits fichier par fichier. Cette méthode rend les accès plus faciles à relire et évite de transférer inutilement la propriété à plusieurs utilisateurs.
Créez, modifiez et exécutez vos fichiers personnels sans sudo quand cela est possible. Réservez les privilèges administrateur aux dossiers système et relisez le chemin complet avant chaque commande sensible.
Conservez une permission restrictive pour les secrets : clés privées SSH, jetons d’accès et fichiers de configuration contenant des mots de passe ne doivent pas être lisibles par d’autres comptes. Les droits font partie de la sécurité locale, au même titre que la protection d’un compte de messagerie ; les difficultés d’authentification ne se règlent pas avec les mêmes outils que les problèmes courants de Roundcube.
À retenir
- 🔍 Vérifiez l’utilisateur actif avec
idavant toute modification. - ⚙️ Utilisez
chmodpour corriger un droit, pas une propriété. - 📄 Utilisez
chownlorsqu’un fichier appartient au mauvais compte. - ⚠️ Évitez
chmod 777et les commandes récursives non contrôlées. - 🔒 Contrôlez ACL, SELinux et montage en lecture seule si le refus persiste.
Questions fréquentes sur les permissions Linux
Comment rendre un script exécutable sous Linux ?
Utilisez chmod u+x script.sh pour ajouter le droit d’exécution au propriétaire. Lancez ensuite le script avec ./script.sh depuis son dossier, après avoir vérifié que le fichier contient une ligne d’interpréteur adaptée.
Pourquoi un fichier reste-t-il inaccessible après chmod ?
Le blocage peut venir d’un dossier parent sans droit de traversée, d’un propriétaire incorrect, d’une ACL, de SELinux ou d’un système de fichiers en lecture seule. Vérifiez successivement ls -ld sur le chemin, getfacl, puis getenforce lorsque SELinux est présent.
Est-il dangereux d’utiliser chmod 777 ?
Oui, car chmod 777 accorde lecture, écriture et exécution au propriétaire, au groupe et aux autres utilisateurs. Cette commande peut exposer un fichier à des modifications non prévues ; choisissez un droit minimal correspondant à l’usage réel.
Comment donner à un autre utilisateur l’accès à un dossier ?
La solution la plus lisible consiste souvent à utiliser un groupe partagé, puis à accorder au groupe les droits adaptés avec chmod g+rx ou chmod g+rwx selon le besoin. Une ACL peut convenir pour une exception ponctuelle accordée à un utilisateur précis.
Que faire si le système de fichiers est monté en lecture seule ?
Vérifiez l’état du montage avec mount | grep /chemin/vers/dossier. Un montage en lecture seule ne se corrige pas par chmod ; recherchez la cause du montage et évitez d’écrire sur le support avant d’avoir vérifié son état.