La commande Chmod et les autorisations de fichier Linux expliquées

Si vous souhaitez gérer correctement les autorisations de fichiers sur n'importe quel système d'exploitation Linux, vous devez connaître la commande chmod.

Si vous souhaitez gérer correctement les autorisations de fichiers sur n'importe quel système d'exploitation Linux, vous devez connaître la commande chmod.
Publicité

Vous avez donc trouvé une saveur de Linux que vous aimez, mais maintenant vous êtes confus parce que vous n'avez pas la moindre idée sur les commandes de terminal et les permissions de fichiers Linux?

Ou peut-être avez-vous un site Web hébergé sur un serveur Linux et vous avez rencontré des problèmes d'autorisations de fichiers qui ne peuvent être résolus qu'avec un peu de magie de la ligne de commande.

Quoi qu'il en soit, l'une des commandes Linux les plus essentielles pour apprendre une AZ de Linux - 40 commandes essentielles que vous devriez savoir Un AZ de Linux - 40 commandes essentielles que vous devez savoir Linux est la troisième roue souvent ignorée de Windows et Mac. Oui, au cours de la dernière décennie, le système d'exploitation open source a pris beaucoup de traction, mais il est encore loin d'être considéré ... Read More est une petite mais puissante commande appelée chmod . Mais avant d'expliquer ce que la commande fait, nous devons d'abord comprendre un peu comment Linux gère la sécurité des fichiers.

Les bases des permissions de fichiers Linux

Les systèmes d'exploitation Linux sont en fait des systèmes de type Unix (comprenant Linux et Unix), et les systèmes Unix s'approchent des permissions de fichiers comme:

Chaque fichier a un propriétaire qui détermine la «classe d'utilisateurs» du fichier. Chaque fichier possède également un groupe qui détermine la «classe de groupe» du fichier. Tout utilisateur du système qui n'est pas le propriétaire et n'appartient pas au même groupe déterminé à être les autres .

Tous les fichiers sur les systèmes de type Unix ont des permissions assignées aux trois classes, et celles-ci déterminent quelles actions peuvent être prises par lesdites classes pour le fichier donné.

Les trois actions disponibles sur un système de type Unix sont: read (la possibilité d'ouvrir et d'afficher le contenu du fichier), write (la possibilité d'ouvrir et de modifier le contenu d'un fichier), et exécuter (la possibilité d'exécuter le fichier en tant que programme exécutable).

En d'autres termes, les autorisations d'un fichier déterminent si oui ou non:

  • Le propriétaire peut lire, écrire et exécuter le fichier.
  • Le groupe peut lire, écrire et exécuter le fichier.
  • Tout le monde peut lire, écrire et exécuter le fichier.

Les autorisations de fichiers Linux peuvent être affichées dans deux formats.

Le premier format est appelé notation symbolique, qui est une chaîne de 10 caractères: un caractère représentant le type de fichier, puis neuf caractères représentant les autorisations de lecture (r), d'écriture (w) et d'exécution (x) du fichier dans l'ordre suivant: propriétaire, groupe et autres. Si non autorisé, le symbole du tiret (-) est utilisé.

Par exemple:

-rwxr-xr-- 

Cela signifie que c'est un fichier régulier avec des autorisations de lecture, d'écriture et d'exécution pour le propriétaire; lire et exécuter les permissions pour le groupe; et seulement lire les autorisations pour tout le monde.

Le second format est appelé notation numérique, qui est une chaîne de trois chiffres représentant chacun les autorisations d'utilisateur, de groupe et autres. Chaque chiffre peut aller de 0 à 7, et la valeur de chaque chiffre est obtenue en additionnant les permissions de la classe:

  • 0 signifie qu'aucune autorisation n'est autorisée.
  • +1 si la classe peut exécuter le fichier.
  • +2 si la classe peut écrire dans le fichier.
  • +4 si la classe peut lire le fichier.

En d'autres termes, la signification de chaque valeur numérique est:

  • 0: Aucune permission
  • 1: Exécuter
  • 2: Écrire
  • 3: Écrire et exécuter
  • 4: Lire
  • 5: Lire et exécuter
  • 6: Lire et écrire
  • 7: Lire, écrire et exécuter

Donc l'exemple ci-dessus ( -rwxr-xr-- ) serait 754 en notation numérique.

Voilà les permissions des fichiers Linux en un mot.

Qu'est-ce que Chmod?

Sur les systèmes de type Unix, chmod est une commande au niveau du système qui signifie «changement de mode» et vous permet de modifier manuellement les paramètres d'autorisation d'un fichier.

Ne pas confondre avec chown, qui est une autre commande de niveau système sur les systèmes de type Unix qui signifie «change owner» et vous permet d'assigner la propriété d'un fichier à un autre utilisateur, ou chgrp, qui signifie «change group» et assigne un fichier à un groupe différent. Ceux-ci sont importants à connaître, mais pas aussi couramment utilisés que chmod.

Que signifie Chmod 644?

Définir les autorisations d'un fichier sur 644 le rend si seul le propriétaire peut accéder et modifier le fichier comme bon lui semble alors que tout le monde peut y accéder sans modification, et personne ne peut exécuter le fichier, pas même le propriétaire. C'est le paramètre idéal pour les fichiers accessibles au public car il équilibre la flexibilité et la sécurité.

Que signifie Chmod 755?

Définir les autorisations d'un fichier à 755 est fondamentalement la même chose que 644, sauf que tout le monde a également des autorisations d'exécution. Ceci est principalement utilisé pour les répertoires accessibles au public, car l'autorisation d'exécution est nécessaire pour passer dans un répertoire.

Que signifie Chmod 555?

Définir les autorisations d'un fichier sur 555 fait en sorte que le fichier ne puisse être modifié par personne d'autre que le superutilisateur du système (en savoir plus sur le superutilisateur Linux Qu'est-ce que SU et pourquoi est-il important d'utiliser Linux? Important pour utiliser efficacement Linux Le compte utilisateur Linux SU ou root est un outil puissant qui peut être utile lorsqu'il est utilisé correctement ou dévastateur s'il est utilisé de manière imprudente. Voyons pourquoi vous devriez être responsable lorsque vous utilisez SU. Ce n'est pas aussi courant que le 644, mais il est toujours important de le savoir car le paramètre en lecture seule empêche les modifications accidentelles et / ou la falsification.

Que signifie Chmod 777?

La définition des permissions d'un fichier sur 777 permet à n'importe qui de faire ce qu'il veut avec le fichier. C'est un énorme risque de sécurité, surtout sur les serveurs web! Littéralement n'importe qui peut accéder au fichier, le modifier comme bon lui semble et l'exécuter sur le système. Vous pouvez imaginer les dommages potentiels si un utilisateur malintentionné a mis la main dessus.

Comment utiliser Chmod sous Linux

La commande chmod a un format simple:

 chmod [permissions] [file] 

Les autorisations peuvent être données en notation numérique, qui est le meilleur format à utiliser lorsque vous souhaitez attribuer des autorisations spécifiques à toutes les classes:

 chmod 644 example.txt 

Les autorisations peuvent également être données en notation symbolique, ce qui est utile lorsque vous voulez seulement modifier les permissions d'une classe particulière. Par exemple:

 chmod u=rwx example.txt chmod g=rw example.txt chmod o=rw example.txt 

Vous pouvez modifier les autorisations pour plusieurs classes, telles que cet exemple qui définit le propriétaire en lecture / écriture / exécution mais le groupe et les autres à lire / exécuter:

 chmod u=rwx, g=rw, o=rw example.txt 

Lorsque vous attribuez les mêmes autorisations à plusieurs classes, vous pouvez les combiner:

 chmod u=rwx, go=rw example.txt 

Mais la beauté de l'utilisation de la notation symbolique brille quand vous voulez seulement ajouter ou enlever l'autorisation pour une action particulière pour une classe particulière.

Par exemple, cela ajoute l'autorisation d'exécution pour le propriétaire du fichier:

 chmod u+x example.txt 

Et cela supprime les droits d'écriture et d'exécution pour les autres utilisateurs:

 chmod o-wx example.txt 

Enfin, si vous souhaitez appliquer un ensemble particulier d'autorisations à tous les fichiers et dossiers d'un répertoire particulier (par exemple, un chmod récursif), utilisez l'option -R et ciblez un répertoire:

 chmod -R 755 example_directory 

Alors que la commande chmod a l'air un peu folle à première vue, c'est en fait assez simple et entièrement logique. Si vous comprenez ce qui précède, vous avez essentiellement maîtrisé chmod!

En savoir plus sur la maîtrise de Linux

Les commandes comme chmod, chown et chgrp ne sont que la pointe de l'iceberg Linux. Si vous êtes nouveau sur le système d'exploitation, nous vous recommandons de vérifier ces astuces pour les débutants Linux ainsi que ces commandes Linux que vous ne devriez jamais exécuter.

Mais le plus important, vous feriez mieux de consulter notre guide complet des débutants sur Ubuntu et Linux Ubuntu: Guide du débutant Ubuntu: Guide du débutant Curieux à propos d'Ubuntu, mais ne savez pas par où commencer? Tout ce dont vous pourriez avoir besoin pour commencer avec la dernière version d'Ubuntu est ici, écrit dans un anglais clair et facile à comprendre. Lire la suite, qui vous apprendra tout ce que vous devez savoir pour commencer et se familiariser suffisamment pour se sentir à l'aise.

In this article