Calculateur chmod (permissions Unix)
Calculez des permissions Unix en octal, notation ls -l ou cases à cocher, avec setuid, setgid et Sticky, et la commande chmod exacte d’un fichier ou dossier.
Préparez les droits d’un script, d’un dossier partagé ou d’un fichier privé : cochez les permissions ou saisissez un mode, puis copiez la commande chmod adaptée au type choisi.
Saisie
Activez JavaScript pour modifier les permissions. Le résultat affiché correspond au mode 644 pour un fichier.
Résultats
Mode 0644, -rw-r--r--.
- Mode octal
0644- Notation ls -l
-rw-r--r--- Commande chmod octale
chmod 644 fichier- Commande chmod symbolique
chmod u=rw,g=r,o=r,a-t fichier
Commandes vérifiées avec GNU coreutils chmod (Linux) et le chmod de macOS. Pour un dossier, la forme octale à cinq chiffres et les ajouts u-s et g-s retirent explicitement setuid et setgid, que GNU conserverait sinon. ACL et attributs étendus non pris en compte.
Avertissements
Ce que permet ce mode
- Propriétaire : lire le contenu et modifier le contenu.
- Groupe : lire le contenu.
- Autres : lire le contenu.
Comprendre les permissions Unix
Droits et classes
Chaque fichier a trois classes : propriétaire (u), groupe (g) et autres (o). Chacune reçoit lecture (r = 4), écriture (w = 2) et exécution (x = 1) ; le chiffre octal d’une classe est leur somme. 754 donne rwx au propriétaire, r-x au groupe et r-- aux autres.
Bits spéciaux
Un quatrième chiffre, placé devant, ajoute setuid (4), setgid (2) et le bit Sticky (1). Ils s’affichent à la place de l’exécution : s ou t si l’exécution est accordée, S ou T sinon.
Commandes générées
La commande octale fixe tout le mode. La commande symbolique affecte chaque classe (u=, g=, o=) puis règle les bits spéciaux explicitement. Pour un dossier, la forme à cinq chiffres (00755) et les ajouts u-s et g-s retirent setuid et setgid, que chmod de GNU/Linux conserverait sinon ; a+t et a-t règlent le bit Sticky de la même façon sous Linux et macOS.
Précautions et limites
N’accordez pas l’écriture aux autres sans raison : 777 ou 666 permettent à tout utilisateur de modifier le contenu. Réservez setuid et setgid aux programmes prévus pour cela et vérifiez le résultat avec ls -l. Commandes vérifiées avec GNU coreutils chmod 9.1 et le chmod de macOS ; ACL, attributs étendus et options de montage comme nosuid peuvent changer l’effet réel.
Questions fréquentes
Que signifie chmod 755 ?
7 pour le propriétaire (4 + 2 + 1 : lecture, écriture, exécution), 5 pour le groupe et les autres (4 + 1 : lecture et exécution), soit rwxr-xr-x. Mode courant pour un script ou un dossier lisible par tous.
Quelle différence entre chmod 644 et 755 ?
644 (rw-r--r--) n’accorde l’exécution à personne : il convient aux fichiers de données. 755 ajoute l’exécution pour tous : il convient aux programmes, aux scripts et aux dossiers, que l’exécution permet de traverser.
Comment rendre un script exécutable ?
Accordez l’exécution au propriétaire, par exemple 744 ou 755. Les commandes générées fixent tout le mode ; chmod u+x script ajoute seulement l’exécution du propriétaire sans modifier le reste.
Que signifie chmod 777 et pourquoi l’éviter ?
Tous les droits pour tout le monde : n’importe quel utilisateur peut modifier ou remplacer le fichier. Préférez 755 ou 644, et 700 ou 600 pour un contenu privé ; pour un dossier partagé, 1777 ajoute le bit Sticky.
À quoi servent setuid, setgid et le bit Sticky ?
setuid et setgid font s’exécuter un programme avec les droits de son propriétaire ou de son groupe ; sur un dossier, setgid fait hériter son groupe aux nouvelles entrées. Le bit Sticky réserve la suppression au propriétaire de chaque entrée, comme dans /tmp.
Pourquoi les permissions d’un dossier se comportent-elles différemment ?
Sur un dossier, r liste les noms, x permet de le traverser et d’ouvrir ses entrées, w permet de créer, renommer ou supprimer des entrées s’il est accompagné de x. Un dossier en 644 n’est donc pas traversable.
