Calculateur chmod

Calculez les permissions des fichiers Linux dans les deux sens. Cochez lecture, écriture et exécution pour le propriétaire, le groupe et les autres afin d'obtenir le mode octal et la commande à lancer — ou collez 755, rwxr-xr-x, u+x ou une ligne ls -l entière et voyez exactement ce qu'elle signifie.

Calculé dans votre navigateur · rien n'est envoyé nulle part · comportement de POSIX et de GNU coreutils
Fichiers
Répertoires

Saisissez 755, collez rwxr-xr-x ou une ligne ls -l entière, ou modifiez le mode avec u+x ou go-w.

Type
Lire4Écrire2Exécuter1Chiffre
Propriétaire4+2+1=7
Groupe4+1=5
Les autres4+1=5
Spécialrien=0

En clair

  • Le propriétaire peut le lire, le modifier et l'exécuter.
  • Le groupe et les autres peuvent le lire et l'exécuter.
  • Ce fichier peut être exécuté.

Calculé dans votre navigateur. Rien n'est envoyé nulle part.

À quoi sert chmod ?

chmod définit qui peut lire, modifier et exécuter un fichier. Un mode est fait de douze bits, le plus souvent écrits en trois ou quatre chiffres octaux : 755, 644, 2775.

Chacun des trois chiffres correspond à une classe — le propriétaire du fichier, le groupe du fichier et les autres — et chaque chiffre est la somme de trois nombres : lire vaut 4, écrire vaut 2, exécuter vaut 1. Donc 7, c'est lire, écrire et exécuter ; 5, lire et exécuter ; 6, lire et écrire ; 4, lire seulement. C'est tout le système. chmod 755 script.sh dit : propriétaire 7, groupe 5, autres 5.

Le quatrième chiffre, quand il y en a un, porte les trois bits spéciaux — setuid 4, setgid 2 et le bit sticky 1 — et il est omis quand aucun n'est posé. Le calculateur ci-dessus affiche les quatre chiffres d'un coup, avec le calcul derrière chacun : vous n'avez plus à chercher les nombres.

Un mode, c'est douze bitschmod 755 script.sh
Avantscript.sh
Spécials4s2t10
Propriétairer4w2x16
Grouper4w2x14
Les autresr4w2x14
-rw-r--r--0644
Aprèsscript.sh
Spécials4s2t10
Propriétairer4w2x17
Grouper4w2x15
Les autresr4w2x15
-rwxr-xr-x0755
chmod 755 fixe d'un coup tous les bits du mode : à partir de 644, cela allume les trois bits d'exécution, un par classe. Les trois bits de chaque classe s'additionnent en un chiffre octal.
Calculateur chmod montrant le mode 755 : grille de permissions, chiffres octaux, forme symbolique et commande chmodCalculateur chmod montrant le mode 755 : grille de permissions, chiffres octaux, forme symbolique et commande chmodCochez ou saisissezLa grille et les champs ne font qu'un : modifiez l'un et le reste suit.Chaque chiffre4 + 2 + 1 pour chaque classe : le nombre n'est plus à apprendre par cœur.Collez n'importe quoi755, rwxr-xr-x, u+x ou une ligne ls -l entière : il lit les quatre.La commandeConstruite à partir du mode choisi, avec le bon nombre de chiffres et une forme récursive qui n'écrase pas vos fichiers.Ce que ça signifieUne phrase claire, et les avertissements que le mode mérite.
Le mode 755 décomposé : la grille, le calcul derrière chaque chiffre, la forme symbolique et la commande à lancer. Sélectionnez un numéro pour voir ce que montre chaque partie.

Comment fonctionnent les permissions des fichiers sous Linux

Chaque fichier a un propriétaire, un groupe et un mode. Le mode donne trois permissions à chacune des trois classes — neuf bits — et juste après le caractère du type de fichier, ls -l affiche exactement ces neuf caractères.

-rw-r--r-- est un fichier (-) que le propriétaire peut lire et modifier, et que le groupe et les autres peuvent seulement lire : mode 644. drwxr-xr-x est un répertoire (d) en 755. Le premier caractère est le type : - un fichier, d un répertoire, l un lien symbolique, et b, c, p ou s pour les sortes spéciales. Collez n'importe laquelle de ces lignes dans le calculateur : il en lit le mode et le type.

Sur un répertoire, les trois permissions ne veulent pas dire la même chose que sur un fichier. Lire permet de lister les noms qu'il contient. Exécuter permet d'y entrer et d'atteindre les fichiers dont vous connaissez déjà le nom. Écrire, avec exécuter, permet de créer et de supprimer des entrées — c'est pourquoi supprimer un fichier dépend des permissions du répertoire, pas de celles du fichier. Un répertoire en lecture sans exécution, vous pouvez le lister, pas l'ouvrir.

Ce que ls -l affiche en premierls -l notes.txt
PermissionSur un fichierSur un répertoire
r4Lire ce qu'il contientLister les noms qu'il contient
w2Modifier ce qu'il contientCréer, renommer et supprimer des entrées
x1L'exécuter comme un programmeY entrer et ouvrir ce qu'il contient

Autres premiers caractères : d un répertoire, l un lien symbolique, et b, c, p ou s pour les sortes spéciales.

Que signifie chmod 755 ?

755 signifie que le propriétaire peut le lire, le modifier et l'exécuter, et que les autres peuvent le lire et l'exécuter mais pas le modifier. C'est le mode habituel d'un répertoire et d'un programme.

Chiffre par chiffre : 7 = 4 + 2 + 1, donc le propriétaire lit, écrit et exécute. 5 = 4 + 1 pour le groupe et de nouveau pour les autres, donc les deux lisent et exécutent. Écrit en toutes lettres, cela donne rwxr-xr-x, et en commande symbolique chmod u=rwx,g=rx,o=rx.

Utilisez-le pour les répertoires où l'on doit pouvoir entrer, et pour les scripts et les binaires que l'on doit pouvoir exécuter. Ne l'utilisez pas pour quoi que ce soit de secret : le dernier 5 veut dire que tous les comptes de la machine peuvent lire le fichier. Pour les fichiers d'un serveur web, la documentation de WordPress recommande 755 ou 750 pour les répertoires et 644 ou 640 pour les fichiers.

755, chiffre par chiffrechmod 755
7=r4w2x14+2+1rwxPropriétaire
5=r4-2x14+1r-xGroupe
5=r4-2x14+1r-xLes autres
À utiliser pour
  • Les répertoires où l'on doit entrer
  • Les scripts et les programmes
Pas pour
  • Quoi que ce soit de secret : tout le monde peut le lire

La documentation de WordPress : répertoires 755 ou 750, fichiers 644 ou 640.

chmod 644 ou 755 : lequel me faut-il ?

644 pour les fichiers, 755 pour les répertoires et pour tout ce qui doit s'exécuter. La seule différence, c'est le bit d'exécution.

644 est rw-r--r-- : le propriétaire peut le modifier, tout le monde peut le lire, personne ne peut l'exécuter. C'est ce qu'il faut pour le HTML, le CSS, les images, la configuration et les fichiers source. 755 est rwxr-xr-x : la même chose, plus le bit d'exécution pour les trois classes. Un répertoire en a besoin, sinon personne ne peut y entrer, et un script aussi, sinon le shell refusera de l'exécuter.

L'erreur à éviter est chmod -R 755 sur tout un site, qui rend exécutables chaque image et chaque fichier .php. Les deux commandes find que le calculateur écrit donnent aux répertoires et aux fichiers des modes différents en une passe, avec les modes que vous avez réellement choisis plutôt qu'un couple tiré d'un blog.

La seule différence, c'est le bit d'exécution644 · 755
644
LireÉcrireExécuter
Propr.rw-6
Grouper--4
Autresr--4

Fichiers : HTML, CSS, images, configuration, code source

755
LireÉcrireExécuter
Propr.rwx7
Grouper-x5
Autresr-x5

Répertoires, scripts et programmes

À l'envers
  • 755Un fichier en 755 peut être exécuté, comme chaque image et chaque fichier .php sous un chmod -R 755.
  • 644Un répertoire en 644 affiche ses noms, mais personne ne peut y entrer ni rien y ouvrir.

Que fait chmod 777, et est-ce sûr ?

777 laisse tous les comptes de la machine lire, modifier et exécuter le fichier. Ce n'est presque jamais la bonne réponse, et la documentation de WordPress dit qu'aucun répertoire ne devrait jamais l'avoir.

Accessible en écriture à tous : quiconque peut se connecter — ou tout ce qui tourne sous n'importe quel utilisateur, y compris un processus compromis — peut remplacer le contenu du fichier. Si ce fichier est un script que le serveur web exécute, vous avez livré le serveur. La page des permissions de WordPress recommande 755 ou 750 pour les répertoires et 644 ou 640 pour les fichiers, et précise qu'aucun répertoire ne devrait jamais être en 777, pas même un répertoire d'envoi.

Quand une application web ne peut pas écrire dans un répertoire, la solution est le propriétaire ou le groupe, pas le mode : faites un chown du répertoire vers l'utilisateur sous lequel tourne le serveur web, ou ajoutez cet utilisateur à un groupe partagé et utilisez 775. Le calculateur avertit chaque fois qu'un mode laisse tout le monde écrire : sur un fichier toujours, sur un répertoire sauf si le bit sticky empêche de supprimer les fichiers des autres.

Qui peut écrire en 777chmod 777
777Tout le monde peut le modifier
LireÉcrireExécuter
Propr.rwx7
Grouperwx7
Autresrwx7
  1. 1Un compte quelconque, ou un processus qui tourne sous l'un d'eux
  2. 2remplace le script
  3. 3et le serveur web l'exécute
Ce que demande la documentation

WordPress · Répertoires 755 ou 750, fichiers 644 ou 640.

« No directories should ever be given 777, even upload directories. »

La solution est le propriétaire ou le groupe, pas le mode : faites un chown vers l'utilisateur du serveur web, ou partagez un groupe et utilisez 775.

Pourquoi SSH dit-il que les permissions de ma clé sont trop ouvertes ?

OpenSSH refuse d'utiliser une clé privée que quelqu'un d'autre que son propriétaire peut lire. Mettez la clé en 600 et le répertoire .ssh en 700.

Le message exact est Permissions 0644 for '<path>' are too open., suivi de It is required that your private key files are NOT accessible by others. Le test est brutal : si le fichier est à vous et que n'importe quel bit du groupe ou des autres est posé, la clé est refusée. C'est pourquoi 640 échoue aussi, et pourquoi la réponse est 600 plutôt que « un peu moins que 644 ».

chmod 600 ~/.ssh/id_ed25519 et chmod 700 ~/.ssh règlent le problème. La clé publique peut être lisible par tous : seuls la clé privée et le répertoire comptent ici. Choisissez Clé SSH dans les modes courants ci-dessus et le calculateur écrit les deux commandes pour vous.

Ce que ssh affiche
$ssh you@server.example
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for '/home/you/.ssh/id_ed25519' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Ce qu'OpenSSH vérifie
Les fichiers, et les modes qui passent
  • ~/.ssh/700drwx------Le répertoire
  • id_ed25519600-rw-------Votre clé privée
  • id_ed25519.pub644-rw-r--r--La clé publique : tout le monde peut la lire
  • config600-rw-------Non modifiable par les autres
Le test, bit par bit
  • 644rw-r--r--Refusée
  • 640rw-r-----Refusée
  • 600rw-------Acceptée
  • 400r--------Acceptée

Groupe et autres : tous doivent être éteints

Mode symbolique : u, g, o, a avec +, - et =

chmod u+x script.sh ajoute un bit sans toucher au reste. + ajoute, - retire, = fixe une classe exactement à ce que vous listez.

La grammaire est [qui][opérateur][permissions], avec des virgules entre les clauses : u le propriétaire, g le groupe, o les autres, a les trois. Ainsi go-w retire l'écriture au groupe et aux autres, a=rwx fixe tout, et u=rw,go=r est une autre façon d'écrire 644. Collez n'importe laquelle dans le calculateur ci-dessus : il montre quels bits changent, avant et après.

Deux points de la grammaire sont faciles à rater, et le calculateur suit les deux. X — un X majuscule — ajoute le bit d'exécution seulement à un répertoire, ou à un fichier déjà exécutable quelque part, ce qui rend chmod -R u=rwX,go=rX sûr sur une arborescence mixte. Et une clause sans aucune classe, comme +x, n'est pas la même chose que a+x : les bits de votre umask sont laissés tranquilles, si bien qu'avec l'umask habituel 022, chmod +rwx sur un fichier en 644 donne 755, alors que chmod a+rwx donne 777.

qui · opérateur · permissionschmod u+x script.sh
  • ule propriétaire
  • gle groupe
  • oles autres
  • ales trois
  • +ajouter
  • -retirer
  • =fixer exactement à
  • rlire
  • wécrire
  • xexécuter
  • Xexécuter, seulement sur les répertoires et sur les fichiers déjà exécutables
  • ssetuid ou setgid
  • tsticky
Exemples détaillés
ChangementAvantAprès
u+x644rw-r--r--744rwxr--r--Exécution pour le propriétaire, rien d'autre n'est touché.
go-w775rwxrwxr-x755rwxr-xr-xÉcriture retirée au groupe et aux autres.
a=r755rwxr-xr-x444r--r--r--Les trois classes fixées à la lecture, et rien d'autre.
u=rw,go=r777rwxrwxrwx644rw-r--r--Trois clauses : une autre façon d'écrire 644.
+rwx644rw-r--r--755rwxr-xr-xSans classe : les bits de l'umask (022) ne sont pas posés, donc le groupe et les autres n'ont pas l'écriture.
a+rwx644rw-r--r--777rwxrwxrwxAvec a, l'umask ne compte pas : tout est posé.
a+Xsur un répertoire644rw-r--r--755rwxr-xr-xX majuscule sur un répertoire : l'exécution est ajoutée, parce que c'en est un.
a+Xsur un fichier644rw-r--r--644rw-r--r--X majuscule sur un fichier que personne ne peut exécuter : rien n'est ajouté.

Setuid, setgid et le bit sticky

Le quatrième chiffre. Sur un fichier, setuid et setgid changent le compte sous lequel un programme s'exécute. Sur un répertoire, setgid décide du groupe des nouveaux fichiers et le bit sticky décide qui peut les supprimer.

Setuid (4000) sur un exécutable le fait s'exécuter en tant que propriétaire du fichier plutôt qu'en tant que vous — passwd est installé setuid pour pouvoir s'exécuter avec les droits de root quand vous changez de mot de passe. Setgid (2000) fait de même pour le groupe. Sur un répertoire, setgid fait autre chose, et de bien plus utile : les nouveaux fichiers à l'intérieur héritent du groupe du répertoire plutôt que de celui de leur créateur, ce qui garde un dossier de projet partagé partagé. Linux ne documente aucun sens pour le bit setuid sur un répertoire ; sous macOS et les BSD, il peut faire prendre aux nouveaux fichiers le propriétaire du répertoire, si le système de fichiers a été monté avec cette option.

Le bit sticky (1000) sur un répertoire empêche de supprimer les fichiers des autres : seuls le propriétaire du fichier, le propriétaire du répertoire ou root peuvent retirer ou renommer une entrée. /tmp est en mode 1777 pour cette raison précise — tout le monde peut y écrire, personne ne peut supprimer le travail d'un autre. Sur un fichier ordinaire, macOS et les BSD ignorent le bit sticky, et le manuel de GNU ne lui donne un sens que sur certains systèmes anciens. Un piège : chmod 755 somedir — ou chmod 0755 somedir — n'efface pas un bit setgid déjà présent sur un répertoire, parce que chmod GNU les conserve délibérément avec tout mode numérique de moins de cinq chiffres — POSIX n'exige que la forme octale les efface sur un fichier ordinaire. Utilisez g-s, ou chmod 00755 à cinq chiffres, et le calculateur écrit la forme à cinq chiffres chaque fois que c'est ce qu'il vous faut.

Setuid4755

Un programme s'exécute en tant que propriétaire du fichier, pas en tant que vous.

Linux-rwsr-xr-x root root /usr/bin/passwd

passwd est installé ainsi, et s'exécute donc avec les droits de root quand vous changez de mot de passe.

Sur un répertoire : aucun sens documenté sous Linux. Sous macOS et les BSD, les nouveaux fichiers prennent le propriétaire du répertoire si le système de fichiers a été monté avec cette option.

Setgid2775

Dans un répertoire, les nouveaux fichiers prennent le groupe du répertoire plutôt que le vôtre.

Linuxdrwxrwsr-x you devs project/

Un répertoire de projet partagé reste partagé : chaque nouveau fichier appartient à l'équipe.

Sous macOS et les BSD, un nouveau fichier prend toujours le groupe de son répertoire, avec ou sans ce bit.

Sticky1777

Dans un répertoire, seuls le propriétaire du fichier, le propriétaire du répertoire ou root peuvent supprimer ou renommer un fichier.

macOSdrwxrwxrwt root wheel /private/tmp

Tout le monde peut écrire dans /tmp, et personne ne peut supprimer les fichiers d'un autre.

Sur un fichier, le bit sticky est ignoré sous macOS et les BSD.

Le piège de GNU : chmod 755 sur un répertoire laisse son bit setgid en place.

$chmod 755 project → drwxr-sr-xEffacez-le avec cinq chiffres ou avec les lettres :$chmod 00755 project → drwxr-xr-x$chmod g-s project → drwxr-xr-x

umask : ce que reçoivent les nouveaux fichiers

Un nouveau fichier part de 666 et un nouveau répertoire de 777, puis on éteint chaque bit posé dans l'umask. L'umask habituel 022 donne 644 et 755.

L'umask n'est pas une soustraction, c'est un masque : chaque bit posé dans l'umask est éteint dans le mode demandé par le programme. Avec umask 077, un nouveau fichier est en 600 et un nouveau répertoire en 700 — privé par défaut. Avec umask 002, vous obtenez 664 et 775 : le groupe peut écrire aussi.

Un umask ne peut jamais rendre un fichier exécutable, parce que le mode de base d'un fichier n'a aucun bit d'exécution au départ — seuls les répertoires partent de 777. C'est pourquoi un script que vous venez de créer n'est jamais exécutable avant que vous disiez chmod +x. Passez à l'onglet umask ci-dessus pour voir ce que donne n'importe quel umask, et ouvrez l'un ou l'autre résultat directement dans le calculateur.

Éteint, bit par bitumask 022
Un nouveau fichier
Part derw-rw-rw-666
umask····w··w·022
Reçoitrw-r--r--644
Un nouveau répertoire
Part derwxrwxrwx777
umask····w··w·022
Reçoitrwxr-xr-x755
Valeurs d'umask courantes
umaskNouveau fichierNouveau répertoire
022644 rw-r--r--755 rwxr-xr-x
002664 rw-rw-r--775 rwxrwxr-x
027640 rw-r-----750 rwxr-x---
077600 rw-------700 rwx------

Aucun umask ne peut rendre un fichier exécutable : un nouveau fichier part sans bit d'exécution à conserver.

Comment modifier un dossier et tout ce qu'il contient

chmod -R 755 dossier donne le même mode aux répertoires et aux fichiers, ce qui rend chaque fichier exécutable. Deux commandes find donnent à chaque sorte le mode qu'elle doit avoir.

find dossier -type d -exec chmod 755 {} + et find dossier -type f -exec chmod 644 {} + parcourent chacune l'arborescence une fois et règlent séparément les répertoires et les fichiers. Le calculateur écrit les deux avec les modes que vous avez choisis, et non avec un couple fixe. Le + final regroupe les fichiers en aussi peu d'appels à chmod que possible, ce qui compte sur une grande arborescence.

L'autre façon sûre est le X majuscule : chmod -R u=rwX,go=rX dossier n'ajoute l'exécution qu'aux répertoires et aux fichiers qui peuvent déjà s'exécuter. Et après tout changement récursif, stat -c '%a %n' dossier/* relit tout ce qui se trouve un niveau plus bas.

Un dossier, quatre façons
Le dossierMaintenant1234
site/755755644755755
index.html644755644644644
app.php644755644644644
deploy.sh755755644644755
img/755755644755755
logo.png644755644644644
  1. 1$chmod -R 755 siteChaque fichier peut être exécuté
  2. 2$chmod -R 644 siteAucun dossier ne peut être ouvert
  3. 3$find site -type d -exec chmod 755 {} +$find site -type f -exec chmod 644 {} +Chaque sorte reçoit son propre modeUn script perd aussi son x
  4. 4$chmod -R u=rwX,go=rX siteChaque sorte reçoit son propre modeUn fichier qui pouvait déjà s'exécuter garde son x

Existe-t-il un chmod sous Windows ?

Pas la même chose. Windows utilise des listes de contrôle d'accès, et icacls est la commande la plus proche : icacls file /grant Users:(RX).

Les permissions NTFS sont une liste d'entrées, chacune nommant un utilisateur ou un groupe et ses droits : il n'y a donc pas de nombre à trois chiffres à calculer. La traduction la plus proche se fait par classe : lire devient R, lire et exécuter RX, écrire W, et exécuter seul devient le droit spécifique X ; un chiffre qui demande deux droits les liste ensemble — 7 est (RX,W). Aucun chiffre ne correspond à Modify (M, la modification), qui autorise aussi la suppression, ni à Full control (F, le contrôle total), qui autorise aussi la modification des permissions et la prise de possession. Le calculateur montre cette correspondance à côté de votre mode ; c'est l'approximation la plus proche, pas un équivalent.

Dans le Sous-système Windows pour Linux (WSL), chmod fonctionne correctement sur le système de fichiers Linux. Sur un lecteur Windows monté sous /mnt/c, il ne fonctionne que si ce lecteur est monté avec l'option metadata. Sans elle, le mode est déduit de vos droits Windows, identique pour le propriétaire, le groupe et les autres, et chmod ne peut guère plus que poser l'attribut de lecture seule — si bien qu'une clé gardée côté Windows peut sembler trop ouverte, et chmod 600 n'y changera rien.

Chaque chiffre de chmod, son droit icacls le plus procheicacls
ChiffreLettresDroit le plus proche
7rwx(RX,W)Lecture, écriture et exécution
6rw-(R,W)Lecture et écriture
5r-x(RX)Lecture et exécution
4r--(R)Lecture
3-wx(W,X)Écriture et exécution
2-w-(W)Écriture
1--x(X)Exécution
0---—Aucun accès

Une approximation, pas un équivalent : Windows tient une liste d'entrées, chacune nommant qui reçoit quels droits. Aucun chiffre ne correspond à Modify (M, la modification), qui autorise aussi la suppression, ni à Full control (F, le contrôle total), qui autorise aussi la modification des permissions (WDAC) et la prise de possession (WO). Sur les deux systèmes, le propriétaire peut toujours modifier les permissions d'un fichier.

Dans WSL
  • /homeSur le système de fichiers Linux : chmod fonctionne comme sur n'importe quel Linux.
  • /mnt/cSur /mnt/c sans l'option metadata : les modes viennent des droits Windows, et chmod ne change presque rien.
  • /mnt/c · metadataAvec metadata : chmod fonctionne, mais jamais au-delà de ce que Windows vous permet.

Comment vérifier les permissions d'un fichier

ls -l les affiche en lettres et stat en nombre. Collez l'un ou l'autre dans le calculateur et il relit le mode.

ls -l file affiche -rw-r--r-- 1 you staff 4096 25 Oct 09:26 file, et le calculateur accepte la ligne entière — inutile d'en extraire le mode. stat -c '%a %n' file affiche 644 file sous Linux ; sous macOS, la même chose s'écrit stat -f '%Lp %N' file. Pour tout un répertoire d'un coup, GNU find . -maxdepth 1 -printf '%m %p\n' liste chaque mode sous forme de nombre (le find de macOS n'a pas -printf).

Un + à la fin de la chaîne de permissions signale qu'il y a plus que les neuf bits : sous Linux, c'est une ACL POSIX, que getfacl affiche, et ces entrées supplémentaires ne sont pas dans le mode du tout. Sous macOS, un @ signale des attributs étendus et un + des informations de sécurité étendues. Avec ls de GNU, un point (.) signale un contexte de sécurité, comme celui de SELinux. Le calculateur accepte les trois marqueurs et vous prévient que le mode n'est qu'une partie de l'histoire.

Une ligne ls -l, champ par champls -l notes.txt
-Typerw-r--r--Permissions+Marqueur1LiensyouPropriétairestaffGroupe4096Taille25 Oct 09:26Modifiénotes.txtNom
Le mode sous forme de nombre
  • Linux$stat -c '%a %n' notes.txt644 notes.txt
  • macOS$stat -f '%Lp %N' notes.txt644 notes.txt
Le caractère après le mode
  • -rw-r--r--+Linux : une ACL POSIX (getfacl la liste). macOS : des informations de sécurité étendues, comme une ACL.
  • -rw-r--r--@macOS : des attributs étendus.
  • -rw-r--r--.ls de GNU : un contexte de sécurité, comme celui de SELinux, et rien d'autre.
  • -rw-r--r-- Rien de plus : les neuf bits disent tout.

Calculateur chmod : questions et réponses

Que signifie chmod 755 ?

Il donne au propriétaire la lecture, l'écriture et l'exécution, et aux autres la lecture et l'exécution. En toutes lettres, c'est rwxr-xr-x. Les chiffres sont des sommes : 7 vaut 4 + 2 + 1 et 5 vaut 4 + 1. Utilisez-le pour les répertoires, qui ont besoin du bit d'exécution pour que quiconque y entre, et pour les scripts et les programmes. Jamais pour un fichier qui doit rester privé.

Quelle est la différence entre chmod 644 et 755 ?

Un bit par classe : le bit d'exécution. 644 est rw-r--r--, adapté aux documents, aux images, à la configuration et aux fichiers source. 755 est rwxr-xr-x, adapté aux répertoires et à tout ce qui doit s'exécuter. Donner 755 aux fichiers rend chacun d'eux exécutable, c'est pourquoi un chmod -R 755 récursif sur un site web est une erreur ; réglez les répertoires et les fichiers séparément.

Que fait chmod 777, et est-ce sûr ?

Il laisse tous les comptes de la machine lire, modifier et exécuter le fichier. Ce n'est presque jamais nécessaire et c'est un vrai risque sur un serveur partagé ou exposé à Internet : tout ce qui peut écrire un script que le serveur exécute peut prendre le contrôle du serveur. La documentation de WordPress demande 755 ou 750 et 644 ou 640, et dit qu'aucun répertoire ne devrait jamais être en 777. Quand une application ne peut pas écrire quelque part, changez le propriétaire ou le groupe, pas le mode.

Que fait chmod +x ?

Il ajoute le bit d'exécution pour qu'un fichier puisse être exécuté. Notez que +x sans classe n'est pas tout à fait a+x : une clause sans classe laisse tranquilles les bits de votre umask, si bien qu'avec l'umask habituel 022 le propriétaire, le groupe et les autres reçoivent tous l'exécution, alors qu'un umask plus strict, comme 077, ne la donne qu'au propriétaire. Écrivez chmod a+x ou chmod u+x quand vous voulez être sûr de ce que vous obtenez.

Que signifie chmod 600, et pourquoi SSH l'exige-t-il ?

600 est rw------- : seul le propriétaire peut lire ou modifier le fichier. OpenSSH refuse une clé privée que tout autre compte peut lire, avec le message Permissions 0644 for '<path>' are too open. Le contrôle est strict — si le fichier est à vous et qu'un seul bit du groupe ou des autres est posé, la clé est refusée, donc 640 échoue aussi. Utilisez chmod 600 sur la clé et chmod 700 sur ~/.ssh.

Que signifie le quatrième chiffre de chmod ?

Il porte les trois bits spéciaux : setuid 4, setgid 2 et le bit sticky 1. chmod 2775 dossier pose setgid pour que les nouveaux fichiers à l'intérieur prennent le groupe du dossier. chmod 1777 dossier pose le bit sticky pour que personne ne puisse supprimer les fichiers des autres, ce qu'utilise /tmp. Le chiffre est omis quand aucun d'eux n'est posé.

Pourquoi chmod 755 n'a-t-il pas retiré le bit setgid de mon dossier ?

Parce que chmod GNU conserve setuid et setgid sur un répertoire dès que le mode numérique a moins de cinq chiffres — 0755 compris. C'est délibéré et conforme : POSIX n'exige que la forme octale efface ces bits sur un fichier ordinaire. Utilisez la forme symbolique chmod g-s dossier, ou écrivez les zéros de tête : chmod 00755 dossier. Ce calculateur écrit automatiquement la forme à cinq chiffres quand votre changement en a besoin.

Quelle est la différence entre chmod et chown ?

chmod définit ce que le propriétaire, le groupe et les autres peuvent faire. chown définit qui sont réellement le propriétaire et le groupe. Ce sont les deux moitiés d'une même question, et un « permission denied » sur un serveur web est souvent un problème de propriété plutôt que de mode — les fichiers appartiennent au mauvais utilisateur, et aucun mode en dessous de 777 n'y change rien.

Puis-je coller une ligne ls -l dans ce calculateur ?

Oui — la ligne entière, pas seulement le mode. -rw-r--r-- 1 you staff 4096 25 Oct 09:26 notes.txt est lue comme le mode 644 sur un fichier, et drwxrwsr-x comme 2775 sur un répertoire. Le marqueur d'ACL +, le point du contexte de sécurité et le @ de macOS sont tous compris. Vous pouvez aussi coller une expression avec opérateur comme u+x ou go-w et regarder quels bits elle change.

Que signifie le + ou le @ après les permissions ?

Ils indiquent que les neuf bits ne disent pas tout. Sous Linux, un + signifie que le fichier a une ACL POSIX avec des entrées en plus du propriétaire, du groupe et des autres — getfacl les affiche, et elles ne font pas partie du mode. Avec ls de GNU, un point signifie un contexte de sécurité, comme celui de SELinux. Sous macOS, @ signifie des attributs étendus et + des informations de sécurité étendues. Si les permissions se comportent bizarrement malgré un mode raisonnable, regardez de ce côté.

Existe-t-il un équivalent de chmod sous Windows ?

Windows utilise des listes de contrôle d'accès plutôt qu'un mode : il n'y a donc pas d'équivalent exact. icacls file /grant Users:(RX) est la commande la plus proche, et le calculateur montre les droits les plus proches pour votre mode. Dans WSL, chmod fonctionne normalement sur le système de fichiers Linux, mais sur un lecteur Windows sous /mnt/c il n'a presque aucun effet, sauf si ce lecteur a été monté avec l'option metadata.

Que me donne umask 022 ?

644 pour un nouveau fichier et 755 pour un nouveau répertoire. Un nouveau fichier part de 666 et un répertoire de 777, et chaque bit posé dans l'umask est éteint. Comme un fichier ne part jamais avec un bit d'exécution, aucun umask ne peut en rendre un exécutable — c'est toujours un chmod +x ultérieur. Utilisez l'onglet umask ci-dessus pour essayer n'importe quelle valeur et ouvrir l'un ou l'autre résultat dans le calculateur.

Il vous manque quelque chose ?Suggérez une fonction ou un nouvel outil