Les pubs vous déplaisent ? Aller Sans pub Auj.

chmod en langage simple — Pourquoi tout le monde écrit 755 sans savoir ce que cela signifie

Mis à jour le

755, 644, 777 — vous avez tapé ces chiffres des dizaines de fois. Voici ce qu'ils signifient vraiment, pourquoi chmod 777 est paresseux et non mauvais, et dans quelles situations chaque valeur est effectivement la bonne solution.

chmod en langage simple — pourquoi tout le monde écrit 755 sans savoir ce que cela signifie 1
ANNONCE · Supprimer ?

À un moment tôt dans votre carrière, quelqu'un vous a dit de faire fonctionner chmod 755 sur un répertoire ou chmod 644 sur un fichier de configuration. Cela a fonctionné. Vous avez poursuivi. Maintenant, des années plus tard, vous tapez encore ces chiffres par mémoire musculaire — et si quelqu'un vous demande d'expliquer ce que signifie 755, vous faites un geste vague vers l'écran et dites « c'est la chose standard de permissions ».

Cela va bien, jusqu'à ce qu'il ne le soit plus. Le moment où vous devez déboguer une erreur de permission refusée, décider ce que vous mettez dans un nouveau script, ou expliquer à un développeur débutant pourquoi chmod 777 n'est pas la solution pour tout — le mémoire musculaire n'est plus suffisant.

Voici ce que les chiffres signifient réellement.

La structure des bits

Les permissions de fichiers Unix sont trois ensembles de trois bits. C'est tout. Chaque ensemble contrôle ce que l'un des catégories d'utilisateurs peut faire — propriétaire, groupe, autres — et chaque bit dans un ensemble correspond à lecture, écriture ou exécution.

Les valeurs sont : lecture = 4, écriture = 2, exécution = 1. Vous les additionnez pour chaque ensemble. Ainsi 7 signifie lecture + écriture + exécution (4+2+1). 5 signifie lecture + exécution (4+1). 4 signifie lecture seule.

Décomposez 755: le propriétaire obtient 7 (rwx), le groupe obtient 5 (r-x), les autres obtiennent 5 (r-x). En binaire : 111 101 101. En notation symbolique : rwxr-xr-x. La valeur par défaut que vous avez tapée pendant des années est simplement « le propriétaire peut faire tout, tout le monde d'autre peut lire et exécuter mais pas écrire ».

Lecture de la sortie de ls -la

Exécutez ls -la dans tout répertoire et vous obtenez quelque chose de ce genre :

drwxr-xr-x  2 deploy www-data 4096 May 29 10:00 public_html
-rw-r--r--  1 deploy www-data 2341 May 29 09:45 config.php
-rwx------  1 deploy deploy    891 May 28 14:20 deploy.sh
-rw-------  1 deploy deploy    411 May 10 08:30 .env

Le premier caractère correspond au type de fichier : d pour un répertoire, - pour un fichier normal, l pour un lien symbolique. Puis viennent trois groupes de trois caractères — propriétaire, groupe, autres. Un trait signifie que la permission est absente.

Le nombre après les permissions est le compteur de liens dur. Puis le nom du propriétaire, le nom du groupe, la taille du fichier en octets, l'heure de modification, et enfin le nom du fichier.

Ainsi drwxr-xr-x 2 deploy www-data signifie : répertoire, le propriétaire (deploy) peut lire/écrire/exécuter, le groupe (www-data) peut lire et parcourir mais pas écrire, tout le monde d'autre peut lire et parcourir mais pas écrire. Deux liens dur. C'est votre répertoire web standard.

Les valeurs courantes de permissions et pourquoi elles existent

Voici la décomposition des valeurs que vous utiliserez effectivement, ce qu'elles signifient, et quand les utiliser :

ValeurSymboliqueBinaireCe que cela signifieQuand les utiliser
755rwxr-xr-x111 101 101Propriétaire : complet. Groupe / Autres : lecture + exécutionRépertoires, exécutables publics, scripts servis par le web
644rw-r–r–110 100 100Propriétaire : lecture + écriture. Groupe / Autres : lecture seuleFichiers de configuration, actifs statiques, HTML, fichiers sources PHP
600rw——-110 000 000Propriétaire : lecture + écriture. Tout le monde d'autre : rienClés SSH (~/.ssh/id_rsa), fichiers .env
700rwx——111 000 000Propriétaire : complet. Tout le monde d'autre : rienScripts contenant des secrets, exécutables privés
777rwxrwxrwx111 111 111Tout le monde : accès complet/tmp, répertoires de conteneurs — presque nulle part ailleurs

La raison pour laquelle les répertoires ont besoin d'autorisation d'exécution est que « exécution » sur un répertoire signifie « parcourir » — la capacité d'entrer dans le répertoire et d'accéder à ses contenus. Si un répertoire est r--r--r--, vous pouvez lister les noms des fichiers à l'intérieur, mais vous ne pouvez pas les accéder. Vous avez besoin du bit x pour pouvoir cd dans le répertoire ou ouvrir les fichiers. C'est pourquoi 755 et non 744 pour les répertoires.

Si vous souhaitez travailler avec ces valeurs de manière interactive, le Calculateur de chmod sur IO Tools vous permet de basculer individuellement les bits et de voir les valeurs octales et symboliques se mettre à jour en temps réel — utile lorsque vous devez construire une valeur de permission inconnue.

Notation symbolique : quand utiliser au lieu de cela

La notation octale définit toutes les permissions d'un coup. La notation symbolique permet des modifications progressives. Les deux sont valides — le choix dépend de ce que vous faites.

chmod u+x script.sh ajoute une autorisation d'exécution pour le propriétaire sans toucher les autres. Si le fichier est actuellement 644, cela le rend 744. Si vous utilisez la notation octale et écrivez chmod 744 script.sh, vous obtenez le même résultat — mais vous devez connaître l'état actuel d'abord.

Les opérateurs symboliques sont simples : + ajoute une autorisation, - la retire, = la fixe exactement. Les cibles sont u (utilisateur/propriétaire), g (groupe), o (autres), a (les trois).

chmod u+x deploy.sh          # add execute for owner
chmod g-w config.php         # remove write from group
chmod o=r public/index.html  # set others to read-only exactly
chmod a+r shared.txt         # add read for everyone

Utilisez la notation symbolique lorsque vous souhaitez modifier une autorisation sans réinitialiser tout le reste. Utilisez la notation octale lorsque vous définissez les permissions à partir de zéro ou lorsque vous souhaitez avoir un contrôle absolu sur l'état final.

Pourquoi les nouveaux fichiers ne sont pas 666 par défaut

Créez un nouveau fichier avec un éditeur de texte ou touch et vous obtenez 644. Créez un répertoire et vous obtenez 755. D'où viennent ces valeurs par défaut ?

Les fichiers commencent à un maximum théorique de 666 (aucune exécution par défaut — cela doit être explicitement défini). Les répertoires commencent à 777. La umask soustrait de ces maximums.

La valeur par défaut du umask sur la plupart des systèmes Linux est 022. Appliquée à un fichier : 666 – 022 = 644. Appliquée à un répertoire : 777 – 022 = 755. C'est pourquoi 644 et 755 semblent être les valeurs par défaut — elles le sont mécaniquement.

Exécutez umask avec aucun argument pour voir votre valeur actuelle. Modifiez-la dans votre profil de shell si vous avez besoin de valeurs plus strictes — umask 027 vous donne 640 pour les fichiers et 750 pour les répertoires, ce qui retire toutes les autorisations pour « autres » et permet uniquement la lecture au groupe.

chmod 777 : pas mauvais, juste lâche

Voici l'approche honnête sur chmod 777: ce n'est pas une catastrophe de sécurité dans chaque contexte. C'est presque jamais la bonne réponse en production, et les gens l'utilisent parce qu'elle fait disparaître l'erreur de permission sans nécessiter de réflexion.

Sur un serveur partagé, chmod 777 sur un répertoire écritible signifie que tout processus exécuté sous n'importe quel utilisateur — y compris une application web compromise — peut écrire dans ce répertoire. C'est une surface réelle d'attaque. C'est aussi exactement le type de chose qui reste en production éternellement parce que « on va le corriger plus tard ».

Utilisations appropriées de 777 :

  • /tmp dans un conteneur à usage ponctuel — rien ne persiste, rien n'a d'importance, passez à l'action
  • Débogage d'un problème de permission en développement — utilisez-le pour confirmer que le problème est lié aux permissions et non à autre chose, puis définissez la valeur correcte
  • Répertoires de travail partagés sur une machine à usage unique — si vous êtes le seul utilisateur, l'autorisation « autres » est académique

Le workflow de diagnostic est : rencontrez une erreur de refus de permission, appliquez temporairement 777 pour confirmer que le problème est lié aux permissions et non à autre chose, puis déterminez quelle est la valeur de permission correcte et définissez-la à la place. chmod 777 en tant outil de diagnostic est acceptable. chmod 777 dans un script de déploiement que personne ne révisera est la cause des fuites.

Les valeurs à connaître

Vous n'avez pas besoin de mémoriser toutes les combinaisons possibles. Ces quatre couvrent environ 95% de cas réels :

  • 755 — répertoires et exécutables qui doivent être accessibles publiquement
  • 644 — fichiers qui doivent être lisibles par tout le monde mais éditable uniquement par le propriétaire
  • 600 — fichiers sensibles : clés SSH, identifiants, fichiers .env. SSH refusera d'utiliser une clé privée qui n'est pas 600 ou plus strict.
  • 700 — scripts qui exécutent avec des secrets à l'intérieur et qui ne doivent pas être exécutés par quiconque d'autre

Quand vous rencontrez quelque chose en dehors de cette gamme, travaillez à partir de la structure des bits : décidez ce que le propriétaire, le groupe et les autres ont besoin de faire, additionnez les bits, écrivez le nombre. Le Calculateur Chmod est utile ici si vous préférez éviter de faire les calculs mentaux sous pression.

Le modèle de permissions est l'un de ces éléments dans Unix qui semble arbitraire jusqu'à ce que vous compreniez qu'il s'agit simplement d'une addition binaire. Une fois que cela claque, vous arrêtez de copier-coller les commandes chmod d'autrui et commencez à définir les permissions intentionnellement — ce qui est le but.

Envie d'une expérience sans pub ? Passez à la version sans pub

Installez nos extensions

Ajoutez des outils IO à votre navigateur préféré pour un accès instantané et une recherche plus rapide

Sur Extension Chrome Sur Extension de bord Sur Extension Firefox Sur Extension de l'opéra

Le Tableau de Bord Est Arrivé !

Tableau de Bord est une façon amusante de suivre vos jeux, toutes les données sont stockées dans votre navigateur. D'autres fonctionnalités arrivent bientôt !

ANNONCE · Supprimer ?
ANNONCE · Supprimer ?
ANNONCE · Supprimer ?

Coin des nouvelles avec points forts techniques

Impliquez-vous

Aidez-nous à continuer à fournir des outils gratuits et précieux

Offre-moi un café
ANNONCE · Supprimer ?