BrowserTools
Accueil / Calculatrices / Calculateur chmod

Calculateur chmod

Calculez les permissions de fichiers Unix en chiffres comme 755 ou en lettres comme rwxr-xr-x, et voyez ce qu'elles autorisent.

Chargement de Calculateur chmod… Si rien ne se passe, activez JavaScript.

Chaque fichier et dossier sous Linux, macOS et les autres systèmes de type Unix porte trois ensembles de permissions : un pour son propriétaire, un pour son groupe et un pour tous les autres. Chaque ensemble peut autoriser la lecture, l'écriture et l'exécution, et chmod est la commande qui les modifie. Ce calculateur affiche les mêmes permissions sous toutes les formes rencontrées en pratique. Cochez les cases de la grille, saisissez un nombre comme 644 ou 2775, ou collez les lettres de ls -l comme drwxr-sr-x, et les deux autres formes se mettent à jour aussitôt. En dessous, vous obtenez des commandes chmod prêtes à copier, en forme numérique et symbolique (chmod 755 file et chmod u=rwx,g=rx,o=rx file), avec un nom de fichier facultatif et l'option récursive -R.

Questions fréquentes

Que signifie chmod 755 ?
Chaque chiffre correspond à une classe : propriétaire, groupe, autres. 7 vaut lecture (4) plus écriture (2) plus exécution (1), et 5 vaut lecture plus exécution. Ainsi, 755 permet tout au propriétaire, tandis que le groupe et les autres peuvent lire et exécuter le fichier, ou lister et ouvrir le dossier, mais pas le modifier. En lettres, cela donne rwxr-xr-x. C'est le mode habituel des programmes, des scripts et des dossiers web.
Quelle est la différence entre 644 et 755 ?
Dans les deux cas, seul le propriétaire peut écrire. 644 (rw-r--r--) ne donne l'exécution à personne, ce qui convient aux documents, images, fichiers de configuration et pages web. 755 ajoute l'exécution pour les trois classes, ce dont les programmes ont besoin pour s'exécuter et les dossiers pour qu'on puisse y entrer. Un dossier en 644 ne peut pas du tout être ouvert, une cause fréquente d'erreurs "Permission denied".
Que veulent dire s, S, t et T dans les permissions ?
Un s minuscule à la position d'exécution du propriétaire signifie setuid plus exécution, et à celle du groupe setgid plus exécution. Un t minuscule à la position des autres signifie sticky bit plus exécution. Les majuscules S et T indiquent que le bit spécial est activé sans la permission d'exécution, ce qui rend en général le bit inutile sur un fichier. Par exemple, 4755 s'écrit rwsr-xr-x et 1777 rwxrwxrwt.
À quoi servent setuid, setgid et le sticky bit ?
Setuid fait tourner un programme avec les permissions du propriétaire du fichier plutôt qu'avec celles de l'utilisateur qui le lance, c'est ainsi que passwd peut mettre à jour la base des mots de passe. Setgid fait la même chose pour le groupe et, sur un dossier, fait hériter aux nouveaux fichiers le groupe du dossier. Le sticky bit sur un dossier signifie que seuls le propriétaire d'un fichier, celui du dossier ou root peuvent le supprimer ou le renommer, d'où le 1777 de /tmp.
Pourquoi éviter chmod 777 ?
777 permet à n'importe quel compte de la machine, y compris le serveur web et tout service compromis, de modifier ou remplacer le fichier. Sur un dossier, il permet aussi à n'importe qui de supprimer les fichiers des autres. Il masque souvent le vrai problème, qui est en général un mauvais propriétaire ou groupe. Corrigez la propriété avec chown et utilisez plutôt 755 ou 775 pour les dossiers et 644 ou 664 pour les fichiers.
Comment appliquer récursivement des permissions différentes aux fichiers et aux dossiers ?
chmod -R applique un seul mode à tout, les fichiers recevraient donc l'exécution comme les dossiers. Utilisez plutôt find : find chemin -type d -exec chmod 755 {} + pour les dossiers et find chemin -type f -exec chmod 644 {} + pour les fichiers. Le mode symbolique propose aussi un raccourci : chmod -R u=rwX,go=rX chemin, où le X majuscule n'ajoute l'exécution qu'aux dossiers et aux fichiers déjà exécutables.
Qu'est-ce que l'umask ?
L'umask est un ensemble de bits retirés des permissions par défaut quand un programme crée quelque chose. Les fichiers partent de 666 et les dossiers de 777, et chaque bit de l'umask est retiré. Avec l'umask courant 022, les nouveaux fichiers sont en 644 et les nouveaux dossiers en 755. Avec 077, ils sont en 600 et 700, et vous seul pouvez y accéder. Lancez umask dans un terminal pour voir votre valeur actuelle.
chmod 755 sur un dossier efface-t-il le bit setgid ?
Pas avec le chmod GNU sous Linux. Pour les dossiers, il conserve les bits setuid et setgid existants quand vous donnez un mode numérique, afin que les dossiers partagés ne perdent pas l'héritage du groupe par erreur. Pour les effacer, utilisez le mode symbolique, comme chmod g-s dossier, ou un mode numérique avec un zéro supplémentaire devant, comme chmod 00755 dossier. D'autres systèmes peuvent se comporter autrement, vérifiez donc ensuite avec ls -l.

À propos de Calculateur chmod

Les nombres sont en octal : chaque chiffre est la somme de lecture (4), écriture (2) et exécution (1) pour une classe, donc 7 signifie les trois, 6 lecture et écriture, 5 lecture et exécution et 4 lecture seule. Un quatrième chiffre placé devant contient les bits spéciaux : 4 pour setuid, 2 pour setgid et 1 pour le sticky bit. Dans la forme en lettres, ils apparaissent aux positions d'exécution sous la forme s ou t, et en majuscule S ou T quand le bit spécial est activé sans la permission d'exécution correspondante. Le calculateur comprend tous ces cas, et le panneau d'explication dit en langage clair ce que le propriétaire, le groupe et les autres peuvent réellement faire. Basculez entre File et Directory, car les mêmes bits n'ont pas le même sens : sur un dossier, la lecture permet de lister les noms, l'écriture de créer et supprimer des fichiers, et l'exécution d'y entrer et d'atteindre les fichiers qu'il contient.

Les réglages courants couvrent les cas de tous les jours : 644 pour les fichiers ordinaires, 755 pour les scripts et les dossiers, 600 et 700 pour les clés et dossiers privés, 664 et 775 pour le travail en groupe, 400 pour les secrets en lecture seule et 1777 pour les dossiers temporaires partagés. L'outil vous avertit quand un mode est risqué, par exemple 777, un dossier accessible en écriture à tous sans sticky bit ou un programme setuid modifiable par d'autres. Un calculateur d'umask est aussi fourni : saisissez un umask comme 022 ou 077 et voyez les permissions des nouveaux fichiers (à partir de 666) et des nouveaux dossiers (à partir de 777). Tout est calculé dans votre navigateur.

Le sticky bit gardait autrefois les programmes en mémoire

Le sticky bit doit son nom aux premiers Unix, bien avant d'avoir un rapport avec les dossiers partagés. Sur un fichier de programme, il demandait au système de conserver le code du programme dans l'espace de swap après son exécution, pour que les commandes très utilisées, comme l'éditeur ou le shell, démarrent plus vite la fois suivante. On disait que le programme restait collé.

Avec les progrès de la mémoire virtuelle et des caches de pages, l'astuce a perdu son intérêt et la plupart des systèmes ont cessé de tenir compte du bit sur les fichiers. Dans les années 1980, il a reçu un nouveau rôle sur les dossiers : seul le propriétaire d'un fichier peut le supprimer ou le renommer, même si le dossier est accessible en écriture à tous. C'est le sens qu'il a aujourd'hui, et la raison pour laquelle tout système Linux ou macOS affiche un t à la fin de drwxrwxrwt pour /tmp.

Soutenir