Calculateur chmod, gratuit
Calculateur interactif de permissions de fichiers Linux/Unix.
chmod 000 filename
Permissions courantes
Comment utiliser
- 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.
- Ou tapez directement une valeur numérique à 3 chiffres (par ex. 755).
- La notation symbolique et la commande
chmodse mettent à jour en temps réel. - Cliquez sur Copier la commande pour copier la commande chmod complète.
Référence des permissions
| Numéro | Permission | Symbole |
|---|---|---|
| 0 | Aucune permission | --- |
| 1 | Exécution seule | --x |
| 2 | Écriture seule | -w- |
| 3 | Écriture + exécution | -wx |
| 4 | Lecture seule | r-- |
| 5 | Lecture + exécution | r-x |
| 6 | Lecture + écriture | rw- |
| 7 | Lecture + écriture + exécution | rwx |
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 :
- qui :
uutilisateur/propriétaire,ggroupe,oautres,atous (= ugo). - op :
+ajoute,-retire,=définit exactement (et efface les autres). - perm :
r,w,x, plus les lettres spécialesX(exécution uniquement si la cible est un répertoire ou est déjà exécutable pour au moins une classe),s(setuid / setgid),t(sticky / suppression restreinte). Vous pouvez aussi copier depuis une autre classe avecu,g,o: par exemple,g=udéfinit les permissions du groupe identiques à celles du propriétaire.
Exemples utiles :
chmod u+x script.sh: ajoute l'exécution pour le propriétaire uniquement.chmod g-w shared.log: retire l'écriture pour le groupe.chmod a=rw note.txt: met tout le monde en lecture/écriture, efface l'exécution pour tous.chmod o= secret.key: efface tous les bits pour les « autres ».chmod -R u+rwX,go+rX /var/www: accorde récursivement l'accès complet au propriétaire et la lecture aux autres ; leXmajuscule ajoute l'exécution uniquement sur les répertoires ou les fichiers qui l'ont déjà pour une certaine classe, évitant de rendre par accident chaque fichier texte exécutable.
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é
| Mode | Symbolique | Usage typique |
|---|---|---|
| 755 | rwxr-xr-x | Exécutables publics et répertoires standard, /usr/bin/*, racines web (docroots), arbres de travail Git |
| 644 | rw-r--r-- | Fichiers ordinaires standard, configuration, code source, documents |
| 700 | rwx------ | Répertoire privé, ~/.ssh, documents personnels que personne d'autre ne devrait voir |
| 600 | rw------- | Fichier privé, ~/.ssh/id_rsa, ~/.gnupg/*, fichiers de mots de passe |
| 444 | r--r--r-- | Lecture seule pour tous, données de référence fixes, index de registre Cargo |
| 750 | rwxr-x--- | Propriétaire complet, groupe lecture/traversée, autres rien, répertoire de service partagé en groupe |
| 777 | rwxrwxrwx | Presque 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 :
- 4xxx, setuid (set user ID). Quand il est posé sur un exécutable, le programme s'exécute avec les privilèges du propriétaire plutôt que ceux de l'appelant. L'exemple classique est
passwd: chaque utilisateur peut l'exécuter, mais ce n'est que parce qu'il est setuid-root qu'il peut écrire dans/etc/shadow. Le setuid est une surface de sécurité majeure ; le Linux moderne le remplace de plus en plus par des capacités de fichier (des bits de permission plus granulaires viasetcap), et de nombreuses distributions retirent progressivement les bits setuid. - 2xxx, setgid (set group ID). Sur un exécutable, il s'exécute avec le groupe du fichier ; sur un répertoire, les fichiers créés à l'intérieur héritent du groupe du répertoire plutôt que du groupe principal du créateur, utile pour les répertoires de projet partagés.
- 1xxx, bit sticky. Sur un répertoire, seul le propriétaire du fichier (ou root) peut supprimer ou renommer les fichiers à l'intérieur, indépendamment de la permission d'écriture sur le répertoire lui-même. L'usage canonique est
/tmp: accessible en écriture par tous pour que n'importe quel utilisateur puisse créer des fichiers, mais le bit sticky empêche les utilisateurs de supprimer les fichiers des autres.
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 :
- umask 022 (la valeur par défaut sur la plupart des distributions Linux), retire l'écriture au groupe et aux autres. Les nouveaux fichiers se retrouvent en 644, les nouveaux répertoires en 755.
- umask 002 (par défaut dans certains environnements de développement partagé), retire l'écriture uniquement aux autres. Nouveaux fichiers en 664, répertoires en 775. Utile quand une équipe de développement veut lire et modifier les fichiers les uns des autres.
- umask 077 (courant sur les serveurs privés et les configurations soucieuses de sécurité), retire toutes les permissions au groupe et aux autres. Nouveaux fichiers en 600, répertoires en 700.
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 :
- Lecture sur un répertoire : lister son contenu. Sans la lecture, vous pouvez quand même accéder à un nom de fichier connu à l'intérieur du répertoire si vous avez l'exécution, mais
lsne fonctionnera pas. - Écriture sur un répertoire : créer, supprimer ou renommer des entrées à l'intérieur. À noter : c'est indépendant de la permission d'écriture sur les fichiers eux-mêmes. L'écriture sur le répertoire plus le bit sticky (1xxx) est ce qui permet des répertoires partagés multi-utilisateurs contrôlés comme
/tmp. - Exécution sur un répertoire : le traverser (
cdpour y entrer, accéder aux entrées nommées à l'intérieur). Un répertoire sans exécution est une impasse. Beaucoup de problèmes subtils de « permission denied » viennent de cette distinction : vous avez la lecture sur un répertoire profond mais pas l'exécution sur l'un de ses parents, donc vous ne pouvez pas l'atteindre.
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 :
- Les liens symboliques ont leur propre mode (toujours 777), mais il est ignoré.
chmodsuit le lien et modifie la cible par défaut. Utilisezchmod -hsur BSD ouchmod --no-dereferencesur GNU pour opérer sur le lien lui-même, bien qu'il y ait rarement une raison de le faire. - Les ACL POSIX (
setfacl,getfacl) étendent le modèle de base avec des entrées par utilisateur et par groupe. Un fichier peut accorder l'écriture à un utilisateur précis sans toucher aux bits de mode standard.ls -laffiche un+en fin de ligne sur les fichiers dotés d'ACL. macOS, la plupart des systèmes de fichiers Linux et les BSD les prennent tous en charge ; elles sont facultatives et de nombreux administrateurs système préfèrent s'en tenir au mode classique, plus simple. - Les ACL NTFS de Windows sont encore plus riches : des entrées par utilisateur / par groupe avec des bits d'autorisation / de refus explicites et un héritage transmissible. Le modèle
chmodne s'y traduit pas directement. Cygwin et WSL l'émulent imparfaitement par-dessus NTFS.
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.