Calculateur chmod

Cochez qui peut lire, écrire et exécuter un fichier, ou saisissez un nombre comme 755. Vous obtenez les formes octale et symbolique et la commande à lancer, avec l’usage des valeurs courantes.

Qui peut faire quoi
LectureÉcritureExécution
Propriétaire 7
Groupe 5
Autres 5
Bits spéciaux
Nombre chmod 755 rwxr-xr-x
Lettres
rwxr-xr-x
ls -l, fichier
-rwxr-xr-x
ls -l, dossier
drwxr-xr-x
Avec le nombre
chmod 755 file
Avec des lettres
chmod u=rwx,g=rx,o=rx file

Sur un VPS, vous définissez les droits vous-même : vous avez l’accès root et pouvez donner à chaque site son propre utilisateur Linux. À partir de 3,02 € par mois aujourd’hui, parmi 2 226 serveurs.

Droits courants

ModeLettresUsage
rwxr-xr-xDossiers, scripts et programmes : le propriétaire les modifie, tout le monde peut les lire et les exécuter.
rw-r--r--Fichiers ordinaires d’un site web : le propriétaire écrit, tout le monde lit.
rwxr-x---Comme 755, mais les utilisateurs hors du groupe n’ont aucun accès.
rw-r-----Fichiers de configuration que le groupe du serveur web doit lire, comme wp-config.php.
rwx------Dossiers et scripts privés, comme ~/.ssh.
rw-------Secrets que seul le propriétaire lit et écrit : clés privées SSH, fichiers .env.
r--------Lecture seule pour le propriétaire, par exemple une clé qui ne doit jamais changer.
rwxrwxrwxTout le monde peut lire, écrire et exécuter. À éviter : n’importe quel utilisateur ou script piraté du serveur peut modifier le fichier.

Droits pour un site web

Dossiers en 755 et fichiers en 644 conviennent à la plupart des sites : l’utilisateur qui déploie écrit, le serveur web lit. Lancez ces commandes dans le dossier du site, puis passez les secrets comme wp-config.php ou .env en 640 ou 600.

bash
find /var/www/example.com -type d -exec chmod 755 {} +
find /var/www/example.com -type f -exec chmod 644 {} +
chmod 640 /var/www/example.com/wp-config.php

Fonctionne dans votre navigateur : rien de ce que vous saisissez n’est envoyé ailleurs.

Comment c’est calculé

Chaque fichier a trois jeux de droits : pour son propriétaire, pour son groupe et pour tous les autres. Chaque jeu a trois bits, lecture (4), écriture (2) et exécution (1), et un chiffre octal en est la somme.

chiffre = lecture 4 + écriture 2 + exécution 1
mode = propriétaire, groupe, autres
755 = rwx (4+2+1) r-x (4+1) r-x (4+1)
644 = rw- (4+2) r-- (4) r-- (4)

Un quatrième chiffre placé devant contient les bits spéciaux : setuid 4, setgid 2 et sticky 1. ls les affiche aux places de l’exécution, s pour setuid ou setgid et t pour sticky, en majuscule quand le bit d’exécution dessous est désactivé. Sur un dossier, l’exécution est le droit d’y entrer, donc les dossiers ont besoin de x là où de simples fichiers n’en ont pas besoin.

Exemple

chmod 640 wp-config.php : le propriétaire lit et écrit (6 = 4 + 2), le groupe lit (4) et les autres n’ont rien (0). ls -l affiche alors -rw-r-----, et le serveur web ne peut lire le fichier que s’il est dans le groupe du fichier.

Questions

Que signifie chmod 755 ?

Le propriétaire peut lire, écrire et exécuter (7), et le groupe et tous les autres peuvent lire et exécuter (5 chacun). ls -l l’affiche en rwxr-xr-x. C’est le mode habituel pour les dossiers et pour les scripts et programmes que d’autres doivent exécuter.

Quelle est la différence entre 644 et 755 ?

Uniquement le bit d’exécution. 644 (rw-r--r--) laisse le propriétaire écrire et tout le monde lire ; 755 laisse aussi tout le monde exécuter. Les fichiers ordinaires comme HTML, images et fichiers PHP ont besoin de 644, les dossiers et les scripts qui s’exécutent seuls de 755.

Pourquoi ne pas utiliser chmod 777 ?

777 permet à tout utilisateur et processus du serveur de modifier le fichier. Si un site ou un plugin est piraté, l’attaquant peut réécrire tout ce qui est en 777. Il vaut mieux corriger une erreur de droits en donnant le fichier au bon utilisateur avec chown, ou en ajoutant le serveur web au groupe du fichier.

Comment changer les droits de tous les fichiers d’un dossier ?

chmod -R 755 folder modifie tout ce qui s’y trouve, fichiers compris, ce qui rend chaque fichier exécutable. Pour distinguer dossiers et fichiers, utilisez find : find folder -type d -exec chmod 755 {} + pour les dossiers et find folder -type f -exec chmod 644 {} + pour les fichiers.