Calculateur Chmod

Cochez lecture, écriture et exécution pour le propriétaire, le groupe et les autres afin d'obtenir le nombre chmod octal, la chaîne symbolique rwx et une commande à coller directement dans un terminal.

Cochez les cases pour obtenir le nombre, ou saisissez le nombre pour voir ce qu'il autorise réellement. Les permissions s'appliquent à trois publics — le propriétaire du fichier, le groupe propriétaire et tous les autres — et chaque public obtient lecture, écriture et exécution indépendamment. Basculez la grille ou saisissez une valeur octale ; les deux restent synchronisés.

Qui Lecture (4) Écriture (2) Exécution (1)
Propriétaire (u)
Groupe (g)
Autres (o)

Lire et écrire les bits de permission Unix

Trois triades, trois bits chacune

Chaque fichier Unix porte neuf bits de permission arrangés en trois groupes de trois. La première triade appartient au propriétaire du fichier, la deuxième au groupe du fichier et la troisième à tous les autres du système. Dans chaque triade, les bits signifient lecture, écriture et exécution, et ils valent respectivement 4, 2 et 1. Additionner les valeurs des bits souhaités produit un chiffre unique de 0 à 7, ce qui explique que les permissions s'écrivent traditionnellement en trois chiffres octaux.

Voilà tout le truc derrière un nombre comme 755. Le chiffre du propriétaire est 7, soit 4 + 2 + 1, donc le propriétaire peut lire, écrire et exécuter. Les chiffres du groupe et des autres sont tous deux 5, soit 4 + 1, donc ils peuvent lire et exécuter mais pas modifier. Écrit symboliquement, la même valeur se lit rwxr-xr-x, ce que ls -l imprime exactement après le caractère de type de fichier.

Les trois verbes prennent un sens légèrement différent sur un répertoire. La lecture permet de lister les noms qu'il contient, l'écriture permet de créer et supprimer des entrées, et l'exécution permet de le parcourir pour atteindre un chemin déjà connu. Un répertoire avec lecture mais sans exécution est presque inutile : on voit les noms mais on ne peut ouvrir rien derrière eux.

Les valeurs que vous saisirez réellement

Quelques combinaisons couvrent la plupart du travail réel. 644 (rw-r--r--) est le mode normal d'un document ou d'un fichier source : le propriétaire l'édite, les autres le lisent. 755 (rwxr-xr-x) est le mode normal d'un répertoire ou d'un script exécutable, car tous deux ont besoin du bit d'exécution pour être utilisables. 600 (rw-------) garde un fichier privé de son propriétaire, ce qu'OpenSSH exige pour les clés privées, et 700 fait de même pour un répertoire.

Modes that grant write access to others deserve a second look. 777 lets every account on the machine overwrite or delete the file, and it is almost never the right answer - it is simply the fastest way to make a permissions error disappear without understanding it. When a web server cannot write to an upload directory, the real fix is usually to change the owning user or group with chown, not to open the file to the world.

Permissions also interact with the umask. New files are created with a default mode reduced by the umask value, commonly 022, which is why a freshly created file tends to arrive as 644 rather than 666.

Setuid, setgid et le sticky bit

A fourth digit can sit in front of the three familiar ones, and it carries three special bits: setuid (4), setgid (2) and the sticky bit (1). They change who a program runs as and how a directory treats the files created inside it.

Setuid on an executable makes it run with the privileges of the file's owner rather than the user who launched it. This is how passwd can update a system-wide file while an unprivileged user runs it, and it is also why setuid binaries are audited so carefully - a bug in one is a direct route to the owner's privileges. Setgid does the same thing for the group. On a directory, setgid has a friendlier meaning: new files created inside inherit the directory's group, which keeps a shared project folder consistent no matter who writes to it.

The sticky bit is most familiar on /tmp, usually written 1777. It allows anyone to create files in the directory while restricting deletion to each file's own owner, so users cannot remove each other's temporary files. In a long listing these bits replace the execute character: an s in place of x means setuid or setgid is set, an uppercase S means the bit is set while execute is not, and t marks the sticky bit.

Note open-source : implémenté en JavaScript vanilla sans bibliothèque tierce.

FAQ

Que signifie exactement 755 ?
Le propriétaire peut lire, écrire et exécuter ; le groupe et tous les autres peuvent lire et exécuter mais pas modifier. C'est le mode habituel des répertoires et des scripts qui doivent être exécutables par d'autres utilisateurs.
Mon script est lisible mais indique permission refusée. Pourquoi ?
Lire un fichier et l'exécuter sont des bits séparés. Un script a besoin du bit d'exécution pour l'utilisateur qui tente de le lancer, donc 644 ne suffit pas — utilisez 755, ou lancez-le explicitement via son interpréteur.
777 est-il jamais le bon choix ?
Presque jamais sur une machine partagée ou exposée à internet, car il permet à tout compte local de modifier ou supprimer le fichier. Si un service ne peut pas écrire quelque part, changez le propriétaire ou le groupe plutôt que d'élargir le mode.
Quelle est la différence entre 644 et 0644 ?
Rien, pour les neuf bits standard. Le zéro initial est le chiffre des bits spéciaux et le mettre à 0 efface setuid, setgid et le sticky bit. Beaucoup de gens écrivent quatre chiffres par simple habitude.
Pourquoi SSH refuse-t-il d'utiliser ma clé privée ?
OpenSSH rejette une clé privée que d'autres utilisateurs peuvent lire. Réglez la clé à 600 et le répertoire .ssh conteneur à 700, et l'avertissement disparaît.
chmod se comporte-t-il de la même façon sur macOS et Linux ?
Les modes numériques sont identiques. Les différences apparaissent autour des attributs étendus et des ACL, que macOS signale avec un `+` après la chaîne de permission et que chmod seul ne gère pas.