Calculateur chmod, gratuit

Calculateur interactif de permissions de fichiers Linux/Unix.

Aucune donnée ne quitte votre appareil
Lecture (4)
Écriture (2)
Exécution (1)
Propriétaire
Groupe
Autres
Numérique
Symbolique ---------
chmod 000 filename

Permissions courantes

Comment utiliser

  1. Cochez les cases pour définir les permissions de lecture, d'écriture et d'exécution pour le Propriétaire, le Groupe et les Autres.
  2. Ou tapez directement une valeur numérique à 3 chiffres (par ex. 755).
  3. La notation symbolique et la commande chmod se mettent à jour en temps réel.
  4. Cliquez sur Copier la commande pour copier la commande chmod complète.

Référence des permissions

Numéro Permission Symbole
0Aucune permission---
1Exécution seule--x
2Écriture seule-w-
3Écriture + exécution-wx
4Lecture seuler--
5Lecture + exécutionr-x
6Lecture + écriturerw-
7Lecture + écriture + exécutionrwx

Questions fréquentes

Que signifie chmod 755 ?

755 signifie que le propriétaire peut lire, écrire et exécuter (7), tandis que le groupe et les autres peuvent lire et exécuter mais pas écrire (5). C'est la permission la plus courante pour les dossiers et les scripts.

Quelle est la différence entre 644 et 755 ?

644 (rw-r--r--) autorise le propriétaire à lire/écrire et tout le monde à lire seulement · typique pour les fichiers. 755 (rwxr-xr-x) ajoute la permission d'exécution · typique pour les dossiers et les scripts.

Cela fonctionne-t-il aussi pour les dossiers ?

Oui. Les permissions numériques fonctionnent de la même manière. Pour les dossiers, « exécution » signifie pouvoir entrer dans le dossier et accéder à son contenu.

Le modèle de permissions Unix en 9 bits

Chaque fichier et répertoire d'un système de type Unix porte un « mode », un petit entier qui consigne qui peut faire quoi. Le modèle est essentiellement inchangé depuis la sixième édition d'Unix (mai 1975), les premières entrées de manuel de chmod apparaissant dans la version 1 d'Unix (novembre 1971). Il encode neuf bits de permission disposés en trois triplets lecture / écriture / exécution, un triplet chacun pour le propriétaire du fichier, son groupe, et tous les autres :

Owner    Group    Others
r w x    r w x    r w x
4 2 1    4 2 1    4 2 1

Chaque groupe de trois bits est exactement un chiffre octal, car trois bits encodent 2³ = 8 valeurs distinctes (0-7). Les poids 4, 2, 1 sont 2², 2¹, 2⁰. L'addition de n'importe quelle combinaison de lecture (4) + écriture (2) + exécution (1) produit les huit chiffres possibles par classe sans collision, c'est toute la correspondance octal-symbolique. chmod 755 signifie donc rwx (4+2+1=7) pour le propriétaire, r-x (4+1=5) pour le groupe, et r-x pour tous les autres.

La chaîne de 10 caractères que vous voyez dans ls -l est la même donnée, plus une colonne supplémentaire en tête pour le type de fichier : - pour un fichier ordinaire, d pour un répertoire, l pour un lien symbolique, c pour un périphérique caractère, b pour un périphérique bloc, p pour un tube nommé, s pour un socket. Les neuf caractères restants sont les triplets de permission.

Notation symbolique : chmod u+x fichier

Les modes octaux écrasent les neuf bits d'un coup. Les modes symboliques sont non destructifs, ils ne basculent que les bits que vous nommez. La grammaire est qui + op + perm :

Exemples utiles :

Les modes numériques sont explicites et idempotents (chmod 755 signifie toujours les mêmes neuf bits). Les modes symboliques sont chirurgicaux (chmod g+w ne bascule qu'un seul bit). Les scripts de production tendent à privilégier le numérique pour la clarté dans les journaux d'audit ; les opérateurs qui tapent au shell tendent à privilégier le symbolique pour des ajustements incrémentaux.

Les modes courants et leur utilité

ModeSymboliqueUsage typique
755rwxr-xr-xExécutables publics et répertoires standard, /usr/bin/*, racines web (docroots), arbres de travail Git
644rw-r--r--Fichiers ordinaires standard, configuration, code source, documents
700rwx------Répertoire privé, ~/.ssh, documents personnels que personne d'autre ne devrait voir
600rw-------Fichier privé, ~/.ssh/id_rsa, ~/.gnupg/*, fichiers de mots de passe
444r--r--r--Lecture seule pour tous, données de référence fixes, index de registre Cargo
750rwxr-x---Propriétaire complet, groupe lecture/traversée, autres rien, répertoire de service partagé en groupe
777rwxrwxrwxPresque toujours faux. Voir ci-dessous.

Pourquoi chmod 777 est presque toujours faux

Mettre un fichier en 777 le rend lisible, modifiable et exécutable par tous. Tout utilisateur de la machine (y compris les comptes de service non privilégiés et tout processus qui se retrouve un jour compromis) peut lire le contenu du fichier, le modifier et l'exécuter. Le conseil classique des tutoriels « il suffit de faire chmod 777 jusqu'à ce que ça marche » est un antipatron de sécurité responsable d'innombrables compromissions réelles : fichiers de configuration accessibles en écriture par tous et altérés, répertoires web accessibles en écriture par tous devenant des vecteurs de défacement, fichiers de journaux accessibles en écriture par tous permettant la falsification de journaux, répertoires exécutables par tous permettant l'exécution de code arbitraire.

Si une erreur de permissions vous bloque, la bonne solution consiste presque toujours à changer le propriétaire du fichier (avec chown) ou son groupe (avec chgrp) de sorte que l'utilisateur qui a besoin d'accès possède ou copossède réellement le fichier, et non à supprimer les contrôles d'accès pour tout le monde.

Les bits spéciaux : setuid, setgid, sticky

Un quatrième chiffre octal ajouté en tête du mode débloque trois bits spéciaux, tous des reliques de la conception originale d'Unix :

L'affichage ls -l remplace le caractère d'exécution par s, S, t ou T lorsque ces bits sont posés (les lettres majuscules signifient que le bit est posé mais que le bit d'exécution sous-jacent ne l'est pas).

umask : l'inverse de chmod

chmod définit les permissions sur les fichiers existants. umask détermine les permissions par défaut des fichiers que vous créez, en agissant comme un masque soustractif. Le calcul : un nouveau fichier ordinaire serait 666 (rw-rw-rw-), un nouveau répertoire 777, moins ce qui est posé dans l'umask. Valeurs courantes :

Taper umask sans argument affiche la valeur actuelle. La définir dans l'initialisation de votre shell (~/.bashrc, ~/.zshrc) ou dans /etc/login.defs s'applique à toute la session.

Fichiers et répertoires : des sens différents pour x

Les mêmes bits r/w/x ont des sens subtilement différents sur les répertoires et sur les fichiers :

Le chmod récursif et le motif find

chmod -R 755 /var/www applique le même mode à chaque fichier et répertoire de l'arborescence, ce qui est presque toujours faux parce que les fichiers et les répertoires veulent des modes différents (par exemple, 644 pour les fichiers, 755 pour les répertoires). L'idiome correct utilise find :

find /var/www -type f -exec chmod 644 {} +
find /var/www -type d -exec chmod 755 {} +

Ou, de façon équivalente, en utilisant le chmod GNU et son X majuscule : chmod -R u=rwX,go=rX /var/www accorde l'exécution uniquement sur les répertoires et sur les fichiers qui avaient déjà l'exécution quelque part, exactement le résultat que vous voulez généralement.

Liens symboliques, ACL et comment Linux étend le modèle

Deux raffinements à connaître :

Plus de questions

Pourquoi ma clé SSH est-elle rejetée avec « permissions are too open » ?

Parce que le client OpenSSH refuse d'utiliser une clé privée lisible par le groupe ou par tous, en partant du principe que tout ce que d'autres personnes peuvent lire ne devrait pas être un identifiant. La solution est chmod 600 ~/.ssh/id_rsa (et chmod 700 ~/.ssh sur le répertoire lui-même). Même logique pour ~/.gnupg/ et la plupart des autres dépôts d'identifiants.

Quelle est la différence entre chmod et chown ?

chmod change les bits de mode, ce que le propriétaire/groupe/autres peuvent faire. chown change qui est le propriétaire. Souvent, vous avez besoin des deux : un fichier que « le mauvais utilisateur ne peut pas lire » n'a généralement pas besoin que ses permissions soient ouvertes ; il doit appartenir à l'utilisateur qui a besoin d'accès. Essayez d'abord chown myuser:mygroup file.

Devrais-je utiliser 666 pour les fichiers de journaux ?

Presque jamais. Les fichiers de journaux accessibles en écriture par tous permettent à n'importe quel processus (y compris un service compromis s'exécutant en tant qu'utilisateur peu privilégié) de falsifier des entrées de journal ou d'effacer le journal. Le schéma standard consiste à rendre le répertoire de journaux accessible en écriture par un groupe de journalisation précis (adm sur Debian, wheel sur BSD, etc.) et à ajouter les services concernés à ce groupe, ou à utiliser logrotate plus un démon de journalisation (rsyslog, systemd-journald) qui gère la propriété des fichiers à votre place.

Ce calculateur tient-il compte des bits spéciaux ?

Non, il couvre les neuf bits de permission de base (le mode standard à 3 chiffres). Pour setuid (4xxx), setgid (2xxx) ou sticky (1xxx), vous ajouteriez le chiffre de tête manuellement. La grande majorité du travail chmod au quotidien utilise des modes à 3 chiffres et ne touche jamais aux bits spéciaux.

Quelque chose est-il envoyé à un serveur ?

Non. La conversion bascule ↔ octal ↔ symbolique est de l'arithmétique pure, calculée dans votre navigateur. La page fonctionne hors ligne une fois chargée.

Outils associés

Générateur .htaccess, gratuit Générateur d'expressions cron, gratuit Calculateur de hachage de fichier, gratuit