À Nous la ScienceCulture & éducation scientifique Nous écrire

Univers & matière

Espace & astronomiePhysique & quantiqueTerre & géosciencesMathématiques

Le vivant

Biologie & génétiqueSanté & médecineCerveau & psychologie

Planète & tech

Climat & environnementÉnergieIA & numériqueTechnologies & innovation

Sciences & société

Histoire des sciencesSciences & sociétéÀ proposContact Nous écrire
IA & numérique

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

26 juin 202614 min de lecture

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.

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.

Checklist : résoudre un refus d’accès

Vérifiez chaque point avant de modifier des droits.

Éléments de la liste :

  • Identifier l’utilisateur actif — Utilisez id et vérifiez les groupes du compte utilisé.
  • Inspecter la ressource — Contrôlez droits, propriétaire et groupe avec ls -l ou stat.
  • Vérifier les dossiers parents — Utilisez namei pour repérer le premier dossier non accessible.
  • Contrôler le propriétaire et le groupe — Vérifiez que la ressource appartient au bon compte ou groupe.
  • Appliquer le droit minimal — Utilisez chmod, chown ou chgrp uniquement sur la ressource concernée.
  • Tester avec l’utilisateur concerné — Confirmez que l’accès fonctionne sans privilèges inutiles.
  • Vérifier les blocages avancés — Examinez ACL, montage en lecture seule, journaux et politiques de sécurité.
  • Éviter chmod 777 par réflexe — Ne rendez pas une ressource accessible à tous pour contourner le diagnostic.

Les changements de permissions, de propriétaire ou l’usage de sudo peuvent exposer des données ou endommager le système. Vérifiez toujours le chemin et la commande avant exécution.


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.

Schéma de diagnostic des permissions Linux avec ls, id, chmod et chown
Le diagnostic part de l’utilisateur actif et des droits visibles, puis distingue une permission, une propriété ou une couche de sécurité supplémentaire.

É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

  1. Rendre un script exécutable pour son propriétaire : exécutez chmod u+x script.sh.
  2. Autoriser la lecture au groupe : exécutez chmod g+r rapport.txt.
  3. Autoriser l’accès à un dossier pour le groupe : exécutez chmod g+rx dossier-partage.
  4. Vérifier le résultat : relancez ls -l avant 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 fichier pour modifier propriétaire et groupe en une commande.
  • Utilisez chgrp groupe fichier lorsque seul le groupe doit changer.
  • Accordez g+rw sur un fichier partagé si les membres du groupe doivent le modifier.
  • Accordez g+rx sur 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 sudo pour travailler dans son dossier personnel : des fichiers détenus par root peuvent ensuite bloquer les applications lancées normalement.
  • Lancer chmod -R ou chown -R sans contrôler le chemin : une récursion touche tous les éléments descendants et peut casser des droits attendus.
  • Oublier le droit x sur 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 id avant toute modification.
  • ⚙️ Utilisez chmod pour corriger un droit, pas une propriété.
  • 📄 Utilisez chown lorsqu’un fichier appartient au mauvais compte.
  • ⚠️ Évitez chmod 777 et 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.

Version PDF à téléchargerEmportez l'essentiel de cet article au format PDF.

Télécharger le PDF

Laisser un commentaire