Commandes Linux: chmod

Un guide rapide de lachmodcommande, utilisée pour changer le mode de fichier

Chaque fichier dans les systèmes d'exploitation Linux / macOS (et les systèmes UNIX en général) a 3 autorisations: lecture, écriture, exécution.

Allez dans un dossier et exécutez lels -alcommander.

Les chaînes étranges que vous voyez sur chaque ligne de fichier, commedrwxr-xr-x, définissez les autorisations du fichier ou du dossier.

Disséquons-le.

La première lettre indique le type de fichier:

  • -signifie que c'est un fichier normal
  • dsignifie que c'est un répertoire
  • lsignifie que c'est un lien

Ensuite, vous avez 3 ensembles de valeurs:

  • Le premier ensemble représente les autorisations dupropriétairedu dossier
  • Le deuxième ensemble représente les autorisations des membres dugrouperle fichier est associé à
  • Le troisième ensemble représente les autorisations dutous les autres

Ces ensembles sont composés de 3 valeurs.rwxsignifie que spécifiquepersonnagedispose d'un accès en lecture, en écriture et en exécution. Tout ce qui est supprimé est échangé avec un-, qui vous permet de former diverses combinaisons de valeurs et d'autorisations relatives:rw-,r--,r-x, etc.

Vous pouvez modifier les autorisations accordées à un fichier à l'aide de lachmodcommander.

chmodpeut être utilisé de 2 manières. Le premier utilise des arguments symboliques, le second utilise des arguments numériques. Commençons par les symboles, ce qui est plus intuitif.

Vous tapezchmodsuivi d'un espace et d'une lettre:

  • asignifietout
  • usignifieutilisateur
  • gsignifiegrouper
  • osignifieautres

Ensuite, vous tapez soit+ou-pour ajouter une autorisation ou pour la supprimer. Ensuite, vous entrez un ou plusieurs symboles d'autorisations (r,w,x).

Tous suivis du nom du fichier ou du dossier.

Voici quelques exemples:

chmod a+r filename #everyone can now read
chmod a+rw filename #everyone can now read and write
chmod o-rwx filename #others (not the owner, not in the same group of the file) cannot read, write or execute the file

Vous pouvez appliquer les mêmes autorisations à plusieurs personnes en ajoutant plusieurs lettres avant le+/-:

chmod og-r filename #other and group can't read any more

Si vous modifiez un dossier, vous pouvez appliquer les autorisations à chaque fichier contenu dans ce dossier à l'aide du-r(récursif) flag.

Les arguments numériques sont plus rapides, mais je les trouve difficiles à retenir lorsque vous ne les utilisez pas au jour le jour. Vous utilisez un chiffre qui représente les autorisations du personnage. Cette valeur numérique peut être un maximum de 7, et elle est calculée de cette manière:

  • 1si a l'autorisation d'exécution
  • 2si a l'autorisation d'écriture
  • 4si a l'autorisation de lecture

Cela nous donne 4 combinaisons:

  • 0pas de permissions
  • 1peut exécuter
  • 2peut écrire
  • 3peut écrire, exécuter
  • 4Peux lire
  • 5peut lire, exécuter
  • 6peut lire, écrire
  • 7peut lire, écrire et exécuter

Nous les utilisons par paires de 3, pour définir les autorisations de tous les 3 groupes au total:

chmod 777 filename
chmod 755 filename
chmod 644 filename

LechmodLa commande fonctionne sur Linux, macOS, WSL et partout où vous avez un environnement UNIX

Téléchargez mon gratuitManuel des commandes Linux


Plus de tutoriels cli: