Comprendre les permissions de fichier : Que signifie « Chmod 777 » ?

Si vous êtes un utilisateur de Linux ou un administrateur système gérant un serveur Linux, vous rencontrerez l’erreur « Vous n’avez pas les permissions pour télécharger un fichier dans le dossier ». Après quelques recherches sur Google, la solution est souvent aussi simple que de définir la permission du fichier sur « 775 » ou « 777 ». En termes techniques, on vous demandera de « chmod 777 le fichier ». Mais que signifie « 777 » ? Et pourquoi doit-il être « 7 » et non « 8 » ou « 9 » ?
Dans cet article, nous vous montrons comment mieux comprendre les permissions de fichier, y compris ce que signifie chmod 777.
Lisez aussi : Comment renommer facilement des fichiers sous Linux
Comprendre les permissions de fichier
Les systèmes Unix (y compris Linux et macOS) ont un mécanisme de contrôle des fichiers qui détermine qui peut accéder à un fichier ou un dossier particulier et ce qu’ils peuvent en faire.
Il y a deux parties à considérer :
Classes. Cela détermine qui peut accéder au fichier. Il y a trois désignations : un Propriétaire, un Groupe (qui partage tous les mêmes permissions) et Autres.
- Le Propriétaire est généralement le créateur du fichier ou du dossier. Dans Linux, tous les fichiers ou dossiers que vous créez dans votre répertoire personnel vous appartiennent généralement, sauf si vous changez spécifiquement la propriété.
- Le Groupe contient un groupe d’utilisateurs qui partagent les mêmes permissions et privilèges d’utilisateur.
- Autres signifie le grand public.

Permissions. Cela détermine ce que l’utilisateur peut faire avec un fichier. Vous pouvez soit Lire, Écrire, ou Exécuter un fichier, et vous pouvez définir presque n’importe quelle combinaison de ces trois permissions.
- Lire. Vous ne pouvez pas modifier le contenu du fichier de quelque manière que ce soit. Lorsqu’il est appliqué à un Dossier, vous ne pouvez voir que les fichiers dans ce dossier ; vous ne pouvez pas supprimer ou modifier les fichiers de quelque manière que ce soit ou ajouter d’autres fichiers au dossier.
- Écrire. Vous pouvez modifier le fichier. Si vous avez un accès « écriture » à un dossier, alors vous pouvez supprimer et ajouter des fichiers à ce dossier.
- Exécuter. Exécuter est principalement utilisé lorsque vous devez exécuter le fichier et est le plus souvent utilisé lorsque vous devez exécuter un script.

En utilisant les Classes en combinaison avec les Permissions, vous pouvez contrôler qui a accès à un fichier et les actions qu’ils peuvent effectuer.
Le propriétaire du fichier aura souvent les trois permissions disponibles (lire, écrire et exécuter). Si vous ne pouvez pas télécharger un fichier sur un serveur, c’est souvent à cause de permissions incompatibles.
Expliquer la permission de fichier 777
Une fois que vous avez une compréhension de base des Classes et des Permissions, vous pouvez commencer à comprendre des nombres tels que « 777 » et « 775 ».
Chaque fichier et dossier contient des données de 8 bits qui contrôlent les permissions. Dans sa forme binaire de base, 000 signifie qu’aucune permission de quelque forme que ce soit n’est accordée.
Lorsque vous définissez une permission « Lire », cela ajoute 4 bits aux données, ce qui la rend « 100 » (en format binaire) ou un « 4 » dans le format décimal habituel. Définir une permission « Écrire » ajoutera 2 bits aux données, ce qui la rendra « 010 » et « 2 » en forme décimale. Enfin, définir une permission « Exécuter » ajoute 1 bit aux données, ce qui donnera « 001 », ou « 1 » en forme décimale. En résumé :
- Lire équivaut à « 4 ».
- Écrire équivaut à « 2 ».
- Exécuter équivaut à « 1 ».
En un mot, définir des permissions est une mathématique de base. Par exemple, pour définir des permissions « Lire et Écrire », nous combinons 4 et 2 pour obtenir 6. Bien sûr, il existe d’autres permutations :
- 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
Un ensemble complet de permissions de fichier attribue le premier chiffre au Propriétaire, le deuxième chiffre au Groupe, et le troisième aux Autres. Voici quelques-unes des permissions couramment utilisées :
- 755. Cet ensemble de permissions est couramment utilisé par les serveurs web. Le propriétaire a toutes les permissions pour lire, écrire et exécuter. Tout le monde peut lire et exécuter mais ne peut pas modifier le fichier.
- 644. Seul le propriétaire peut lire et écrire. Tout le monde peut seulement lire. Personne ne peut exécuter ce fichier.
- 655. Seul le propriétaire peut lire et écrire et ne peut pas exécuter le fichier. Tout le monde peut lire et exécuter et ne peut pas modifier le fichier.
Quant à 777, cela signifie que chaque utilisateur peut Lire, Écrire et Exécuter. Comme cela accorde des permissions complètes, cela doit être utilisé avec précaution. Cependant, dans certains cas, vous devrez définir les permissions 777 avant de pouvoir télécharger un fichier sur le serveur.
Définir les permissions de fichier en ligne de commande
Sous Linux, vous pouvez facilement changer les permissions de fichier en cliquant avec le bouton droit sur un fichier ou un dossier et en sélectionnant « Propriétés ». Cela ouvrira un onglet de Permission où vous pourrez apporter des modifications.
En revanche, vous pouvez changer les paramètres de permission sur macOS en cliquant avec le bouton droit et en sélectionnant « Obtenir des informations ». Ici, vous pouvez développer la section « Partage et Permissions » et apporter vos modifications.

Pour apporter des modifications, sélectionnez les permissions pertinentes dans la section Privilège et choisissez quelque chose de plus approprié.

Cependant, ce n’est pas la seule façon de changer les permissions de fichier. Expliquons cela plus en détail ensuite.
Changer les permissions de fichier en utilisant chmod 777
Si vous êtes plus familier avec le Terminal et la ligne de commande, vous pouvez également changer les permissions ici.
La commande chmod vous permet de « changer le mode » – une autre façon de décrire les permissions d’accès. Pour ce faire, ouvrez le Terminal et tapez ce qui suit :
chmod777/path/to/fileEn résumé, chmod 777 combine les deux concepts que nous avons présentés tout au long de cet article. Cela signifie rendre le fichier lisible, écrivable et exécutable par tous ceux qui ont accès. En tant que tel, c’est un outil puissant et potentiellement destructeur pour le système – donc une attention particulière doit être portée à son utilisation.
En résumé
Les permissions de fichier peuvent vous poser un obstacle si elles ne sont pas définies correctement. C’est par conception, car un système verrouillé ne peut pas être compromis. Cependant, si vous souhaitez accéder à un fichier sur votre système ou serveur, apprendre à changer certaines permissions est une compétence solide à avoir.
En résumé, chmod 777 est la commande que vous utiliserez dans le Terminal pour rendre un fichier ou un dossier accessible à tous. Vous devriez l’utiliser rarement et revenir à un ensemble de permissions plus restrictif une fois que vous avez terminé.
Si vous vous demandez ce que d’autre le Terminal peut faire, consultez notre article sur la façon de copier et coller depuis la ligne de commande. Devez-vous gérer les permissions de fichier, et cet article vous aidera-t-il ? Faites-le nous savoir dans la section des commentaires ci-dessous !