Comprendre les autorisations Linux et l’utilisation de chmod

J’ai suivi un cours sur Linux ces derniers mois et un aspect de Linux qui m’a toujours dérouté était le fonctionnement des autorisations. Par exemple, lorsque je télécharge un fichier sur mon serveur Web une fois et que je reçois une erreur, mon hébergeur m’a dit de changer les autorisations de fichier sur 755.

Je n’avais aucune idée de ce que cela signifiait, même si la modification des autorisations résolvait le problème. J’ai maintenant réalisé que les autorisations Linux ne sont pas si compliquées, il suffit de comprendre le système. Dans cet article, je vais parler des autorisations Linux à un niveau supérieur et vous montrer comment utiliser la commande chmod pour modifier les autorisations pour les fichiers et les dossiers.

Autorisations et niveaux Linux

Sous Linux, il y a essentiellement trois autorisations dont vous aurez normalement à vous soucier: lire, écrire et exécuter. Tous les trois sont assez explicites. Désormais, lorsque ces autorisations sont appliquées à un fichier, elles sont appliquées par niveaux.

Il existe trois niveaux d’autorisations sous Linux: propriétaire, groupe et autre. Le propriétaire est l’utilisateur qui possède le fichier / dossier, le groupe inclut d’autres utilisateurs dans le groupe du fichier et autre représente simplement tous les autres utilisateurs qui ne sont pas le propriétaire ou dans le groupe.

La lecture, l’écriture et l’exécution sont représentées sous forme de caractères symboliques ou de nombres octaux. Par exemple, si vous effectuez un ls -l dans un répertoire contenant certains fichiers, vous verrez la représentation symbolique des autorisations en caractères.

Comprendre les autorisations Linux et lutilisation de chmod

Les permissions sont écrites comme suit: le premier bit est soit un tiret soit la lettre d. Tiret signifie que c’est un fichier et signifie répertoire. Notez que le premier bit peut également être un l si le nom du fichier est un lien. Ensuite, il y a trois groupes de trois bits. Le premier bit de chaque groupe est pour la lecture, le deuxième bit pour l’écriture et le troisième pour l’exécution. Les trois premiers bits sont pour le propriétaire, les trois seconds sont pour le groupe et les trois troisièmes bits sont pour les autres. Voici une explication plus visuelle.

1607950261 859 Comprendre les autorisations Linux et lutilisation de chmod

Si vous voyez un tiret à la place d’une lettre, cela signifie que le propriétaire, le groupe ou tous les autres utilisateurs n’ont pas cette autorisation. Dans l’exemple ci-dessus, le propriétaire, le groupe et tous les autres ont des autorisations de lecture, d’écriture et d’exécution.

Si vous regardez la sortie de la commande ls -l, vous remarquerez que mon fichier texte d’exercice a les autorisations suivantes:

-rw-rw-rw-

Cela signifie que tout le monde n’a que des autorisations de lecture / écriture pour le fichier. Voici un autre exemple:

drwxr--r--

En regardant le premier bit, nous pouvons voir que les autorisations sont pour un répertoire. Le propriétaire dispose des autorisations de lecture / écriture / exécution, mais le groupe et les autres utilisateurs n’ont que l’autorisation de lecture.

Représentation du nombre octal

Voilà donc comment les autorisations sont affichées sous Linux à l’aide de symboles. La deuxième façon de représenter les mêmes autorisations consiste à utiliser des nombres octaux. Lorsque nous utiliserons la commande chmod plus tard, vous verrez que vous pouvez modifier les autorisations en utilisant des symboles ou des nombres octaux.

Alors, comment Linux représente-t-il la lecture, l’écriture et l’exécution en utilisant des nombres octaux? Fondamentalement, il attribue simplement un numéro à chaque autorisation, comme indiqué ci-dessous.

1607950261 545 Comprendre les autorisations Linux et lutilisation de chmod

L’autorisation de lecture est représentée par 4, l’écriture par 2 et l’exécution par 1. Tout ce que vous avez à faire est de les additionner pour obtenir l’autorisation octale. Par exemple, prenons l’exemple ci-dessus où tout le monde a toutes les autorisations:

-rwxrwxrwx

Le propriétaire a rwx, nous allons donc ajouter 4 + 2 + 1 pour obtenir une valeur de 7. Nous faisons la même chose pour le groupe et la même chose pour les autres. La valeur octale finale est 777. Jetons un coup d’œil à l’exemple où nous n’avons donné que des autorisations de lecture / écriture:

-rw-rw-rw-

Le premier nombre octal sera 4 + 2 puisque nous ajoutons la lecture et l’écriture. Le second sera le même que le troisième nombre octal. Ici, nous avons une valeur octale finale de 666.

Alors maintenant, essayons dans l’autre sens. Disons que nous voulons savoir quelles autorisations 755 représente? Eh bien, il est assez facile de savoir si vous le décomposez en chiffres individuels. Le premier nombre est 7, que nous ne pouvons obtenir qu’en ajoutant 4 + 2 + 1, ce qui signifie que le propriétaire a l’autorisation de lecture / écriture / exécution. Cinq ne peuvent être obtenus qu’en ajoutant 4 + 1, ce qui signifie que le groupe et les autres utilisateurs ont des autorisations de lecture et d’exécution.

1607950261 942 Comprendre les autorisations Linux et lutilisation de chmod

J’espère que c’est une bonne explication sur la façon de représenter les autorisations sous Linux en utilisant des nombres octaux. C’est assez simple dans l’ensemble.

Utilisation de chmod pour modifier les autorisations

Maintenant que nous comprenons comment lire les autorisations, parlons de la manière dont nous pouvons les modifier. L’utilitaire le plus simple à utiliser à cette fin est la commande chmod. Voilà comment cela fonctionne. La meilleure façon d’expliquer la commande est de passer par un exemple.

Commençons par les autorisations dont nous avons parlé ci-dessus, à savoir:

-rw-rw-rw-

Si nous voulions ajouter l’autorisation d’exécution pour le propriétaire, le groupe et autres, nous pourrions procéder de deux manières. Nous pourrions utiliser la méthode des symboles ou la méthode octale. Pour la méthode du symbole, nous ferions ce qui suit, comme indiqué ci-dessous:

1607950261 918 Comprendre les autorisations Linux et lutilisation de chmod

La commande exacte est

chmod a+x filename

La syntaxe est la suivante: la ou les lettres représentant le propriétaire (u), groupe (g), autre (o) ou tous (une) suivi d’un + pour ajouter des autorisations ou un pour retirer les autorisations, puis la lettre d’autorisation (r pour lire, w pour écrire et X pour exécuter).

Dans l’exemple ci-dessus, j’ai ajouté l’autorisation d’exécution pour tous les utilisateurs. Le résultat comme vous pouvez le voir dans la capture d’écran ci-dessus est un X pour propriétaire, groupe et autre. Maintenant, disons que je voulais supprimer les autorisations d’écriture et d’exécution uniquement pour le groupe et les autres utilisateurs.

1607950261 361 Comprendre les autorisations Linux et lutilisation de chmod

Comme vous pouvez le voir ici, j’ai utilisé la commande suivante pour accomplir cela:

chmod go-wx filename

Puisque je souhaite modifier les autorisations pour le groupe et autres, j’utilise la lettre g et la lettre o. Je souhaite supprimer des autorisations, j’utilise donc le signe. Enfin, je souhaite supprimer les autorisations d’écriture et d’exécution, donc j’utilise w et X. Voici un petit tableau pratique pour l’utilisation des symboles:

1607950261 128 Comprendre les autorisations Linux et lutilisation de chmod

C’est donc tout ce qu’il y a à utiliser la méthode des symboles. Parlons maintenant de la méthode octale, que je trouve un peu plus simple. Octal est bien parce que vous pouvez ajouter ou supprimer des autorisations en une seule fois.

Si nous commençons avec les autorisations suivantes sur un fichier, voyons comment nous pouvons les modifier en utilisant la méthode octale:

-rw-rw-rw-

1607950262 545 Comprendre les autorisations Linux et lutilisation de chmod

Ci-dessus, vous pouvez voir que j’ai utilisé la commande suivante:

chmod 744 filename

Cela signifie essentiellement que le propriétaire obtient l’autorisation de lecture / écriture / exécution et que le groupe et les autres obtiennent uniquement l’autorisation de lecture. Comme vous pouvez le voir, il est facile d’ajouter ou de supprimer des autorisations en une seule commande. Continuons et disons que je veux à nouveau modifier les autorisations.

1607950262 822 Comprendre les autorisations Linux et lutilisation de chmod

Maintenant, j’ai utilisé la commande suivante, encore une fois très simple:

chmod 640 filename

Ici, nous avons donné au propriétaire des autorisations de lecture / écriture, le groupe d’autorisation de lecture uniquement et l’autre groupe aucune autorisation. Vous utilisez un zéro pour indiquer aucune autorisation. Assez simple, hein?

En conclusion, il s’agit d’un aperçu très simple des autorisations Linux et cela peut devenir beaucoup plus compliqué que cela, mais pour les débutants, c’est un bon point de départ. Je publierai plus d’articles sur des autorisations plus avancées à l’avenir. Si vous avez des questions, n’hésitez pas à commenter. Prendre plaisir!