Calculateur chmod — permissions de fichiers Linux (octal ⇄ rwx)

Cochez lecture, écriture et exécution pour obtenir le mode octal et la commande chmod, ou décodez 755, 644 et rwxr-xr-x.

Permissions
QuiLectureÉcritureExécutionChiffre
Propriétaire (user)7
Groupe5
Autres5
Collez « -rw-r--r-- » ou « drwxr-sr-x » directement depuis ls -l.
Octal
0755
ls -l
-rwxr-xr-x
Commande
chmod 755 deploy.sh
chmod u=rwx,g=rx,o=rx deploy.sh
Ce que signifie 755 pour un fichier
  • Propriétaire (7) : lecture, écriture, exécution
  • Groupe (5) : lecture, exécution
  • Autres (5) : lecture, exécution
Préréglages courants
Évaluer une expression chmod symbolique

Voyez l’effet de chmod u+x,go-w sur un mode existant. Prend en charge u/g/o/a, + - =, r w x X s t et les copies comme g=u. Utilise le réglage « dossier » ci-dessus pour X.

644 (rw-r--r--) → 744 (rwxr--r--)

Fonctionne entièrement dans votre navigateur. Rien de ce que vous saisissez n’est envoyé. Parcourir tous les outils gratuits.

Un problème, ou quelque chose à améliorer ? Nous lisons chaque message et corrigeons vite.

Ce calculateur chmod convertit les permissions de fichiers Unix et Linux entre une grille de cases à cocher, le nombre octal qu’utilise chmod (755, 644, 2775) et la chaîne rwxr-xr-x qu’affiche ls -l. Modifiez l’un et les autres suivent, avec une commande chmod prête à coller et une explication en langage clair de qui peut faire quoi. Il gère les bits setuid, setgid et sticky, et explique comment les mêmes bits changent de sens sur un dossier.

Il évalue aussi les expressions chmod symboliques comme u+x,go-w ou a=rX à partir d’un mode de départ, avec les mêmes règles que GNU chmod : vous pouvez vérifier ce que fera une commande avant de la lancer sur un serveur. Une différence : quand vous omettez la lettre u/g/o, le vrai chmod applique votre umask, alors que cet outil la traite comme « a » (comme avec un umask de 000). Rien ne touche à vos fichiers ; c’est un calculateur.

Mode d’emploi

  1. Cochez les cases lecture, écriture et exécution pour le propriétaire, le groupe et les autres, ou saisissez un mode octal comme 750, ou collez une chaîne comme -rw-r--r-- issue de ls -l.
  2. Cochez « C’est un dossier » si vous définissez les permissions d’un dossier ; l’explication change, car x sur un dossier signifie « peut y entrer ».
  3. Saisissez le nom du fichier, cochez Récursif si nécessaire, et copiez la commande chmod.
  4. Pour vérifier une modification relative, saisissez le mode actuel et une expression comme u+x,go-w dans le champ d’expression, puis lisez le résultat.
  5. Utilisez un préréglage quand il vous faut simplement la réponse habituelle : 644 pour les fichiers, 755 pour les dossiers et les scripts, 600 pour les clés privées.

Questions fréquentes

Que signifie chmod 755 ?

Chaque chiffre est une somme de lecture (4), écriture (2) et exécution (1), pour le propriétaire, le groupe et les autres, dans cet ordre. 7 = 4+2+1 : le propriétaire peut lire, écrire et exécuter ; 5 = 4+1 : le groupe et les autres peuvent lire et exécuter, mais pas écrire. Sous forme de chaîne, cela donne rwxr-xr-x. C’est le mode standard pour les dossiers et pour les scripts ou programmes que tout le monde doit pouvoir lancer.

Quelle est la différence entre 644 et 755 ?

Seulement le bit d’exécution. 644 (rw-r--r--) permet au propriétaire de lire et d’écrire, et à tous les autres de lire ; c’est le mode normal pour les documents, pages web, images et fichiers de configuration. 755 ajoute l’exécution pour tous, nécessaire pour entrer dans un dossier ou lancer un script. Donner 755 à des fichiers ordinaires est sans danger mais peu soigné ; donner 644 à un dossier le rend inutilisable pour les autres.

Pourquoi chmod 777 est-il une mauvaise idée ?

777 donne à chaque utilisateur du système le droit de modifier ou de remplacer le fichier, ou d’ajouter et de supprimer des fichiers dans le dossier. Sur un serveur web, cela signifie que n’importe quel processus compromis, comme une extension vulnérable s’exécutant sous un autre utilisateur, peut réécrire votre code. La vraie solution habituelle à une erreur « permission denied » consiste à changer le propriétaire (chown) ou à ajouter l’utilisateur du serveur web au groupe du fichier, puis à utiliser 755/644 ou 775/664.

Que sont setuid, setgid et le sticky bit ?

C’est le quatrième chiffre octal facultatif (placé en tête). setuid (4) fait s’exécuter un programme avec les privilèges de son propriétaire : c’est ainsi que passwd peut modifier /etc/shadow. setgid (2) sur un exécutable le lance avec le groupe du fichier ; sur un dossier, il fait hériter aux nouveaux fichiers le groupe du dossier, ce qui est utile pour les dossiers d’équipe partagés (2775). Le sticky bit (1) sur un dossier ne permet qu’au propriétaire d’un fichier de le supprimer, comme sur /tmp (1777).

Quelles permissions donner aux clés SSH ?

OpenSSH refuse les clés privées lisibles par d’autres. Utilisez 600 (ou 400) pour les clés privées comme ~/.ssh/id_ed25519, 644 pour les clés publiques (.pub), 600 pour ~/.ssh/authorized_keys et ~/.ssh/config, et 700 pour le dossier ~/.ssh lui-même. AWS et d’autres fournisseurs cloud vous demandent de faire chmod 400 sur le fichier .pem qu’ils vous donnent pour la même raison.

Que signifie un S ou un T majuscule dans ls -l ?

Un s ou un t minuscule signifie que le bit spécial est activé et que le bit d’exécution correspondant l’est aussi. Un S ou un T majuscule signifie que le bit spécial est activé mais pas l’exécution, ce qui est généralement une erreur : setuid sur un fichier que personne ne peut exécuter ne fait rien, donc rwSr--r-- indique souvent que quelqu’un a lancé chmod u+s sur le mauvais fichier.

Bits de permission : fichiers et dossiers

• r sur un fichier : lire son contenu. Sur un dossier : lister les noms qu’il contient (ls).

• w sur un fichier : modifier son contenu. Sur un dossier : créer, supprimer et renommer des entrées, mais seulement avec x. Supprimer un fichier est une écriture dans son dossier, pas dans le fichier.

• x sur un fichier : l’exécuter comme programme ou script. Sur un dossier : y entrer (cd) et accéder aux fichiers par leur nom. Un dossier avec r mais sans x permet de lister les noms, mais pas d’ouvrir quoi que ce soit.

Les permissions sont vérifiées par rapport à la première classe qui vous correspond : si vous êtes le propriétaire, seuls les bits du propriétaire s’appliquent, même si ceux du groupe ou des autres sont plus généreux.

Syntaxe symbolique de chmod

Un mode symbolique est composé d’une ou plusieurs clauses séparées par des virgules, de la forme [qui][opérateur][permissions]. Qui vaut u (propriétaire), g (groupe), o (autres) ou a (tous). L’opérateur est + pour ajouter, - pour retirer ou = pour définir exactement. Les permissions sont r, w, x, X (exécution seulement s’il s’agit d’un dossier ou si le fichier est déjà exécutable par quelqu’un), s (setuid/setgid) et t (sticky), ou un seul u, g ou o pour copier les bits actuels d’une autre classe.

Exemples : chmod u+x deploy.sh rend un script exécutable pour son propriétaire. chmod go-w file retire l’écriture à tous sauf au propriétaire. chmod -R a=rX public/ rend une arborescence lisible par tous, avec des dossiers accessibles et des fichiers non exécutables. chmod g=u shared/ donne au groupe les mêmes droits qu’au propriétaire.

Réglages sûrs selon l’usage

• Fichiers de la racine web : 644, dossiers 755, appartenant à votre utilisateur de déploiement ; dossier d’envois appartenant à l’utilisateur du serveur web, 755.

• Secrets (.env, clés privées, identifiants) : 600, appartenant à l’utilisateur du service qui les lit.

• Scripts shell dans un dépôt : 755. Git ne stocke que le bit d’exécution, sous la forme du mode de fichier 100755 ou 100644 ; sous Windows, définissez-le avec git update-index --chmod=+x.

• Dossier d’équipe partagé : 2775 avec un groupe commun, pour que les nouveaux fichiers héritent du groupe.

• Votre umask fixe le point de départ : avec le 022 courant, les nouveaux fichiers ont 644 et les dossiers 755 ; avec 077, 600 et 700.

Outils gratuits similaires

  • Calculateur de sous-réseau — Réseau, broadcast, plage d’hôtes et masque pour n’importe quel CIDR ; découpez des réseaux en VLSM, développez des adresses IPv6 et trouvez les plages qui se chevauchent.
  • Générateur de .gitignore — Combinez des modèles .gitignore de langages, frameworks, éditeurs et systèmes d’exploitation en un seul fichier propre.
  • Générateur d’expressions cron — Créez une planification cron avec des menus ou collez-en une, lisez-la en langage clair et voyez les 10 prochaines exécutions dans votre fuseau et en UTC. Gratuit, dans le navigateur.
  • Docker Run ⇄ Compose — Transformez une commande docker run en service docker-compose.yml, ou un service Compose en commande docker run.