Compréhension des autorisations Linux et de l'utilisation de chmod

J'ai suivi un cours sur Linux au cours des derniers mois et l'un des aspects de Linux qui m'a toujours dérouté était le fonctionnement des autorisations. Par exemple, lors du téléchargement d’un fichier sur mon serveur Web et d’une erreur, mon hôte Web m’a demandé de modifier les autorisations de fichier sur 755.

Je n'avais aucune idée de ce que cela voulait dire, même si la modification des autorisations réglait le problème. J'ai maintenant compris que les permissions Linux n'étaient pas si compliquées, il suffisait de comprendre le système. Dans cet article, je parlerai des autorisations Linux à un niveau élevé et vous montrerai comment utiliser la commande chmod pour modifier les autorisations pour les fichiers et les dossiers.

Autorisations et niveaux de Linux

Sous Linux, vous devez normalement vous préoccuper de trois autorisations: lecture, écriture et exécution. Tous les trois sont assez explicites. Désormais, lorsque ces autorisations sont appliquées à un fichier, elles le sont par niveaux.

Il existe trois niveaux d'autorisations sous Linux: propriétaire, groupe et autre. Le propriétaire est l'utilisateur à qui appartient le fichier / dossier, le groupe inclut d'autres utilisateurs dans le groupe du fichier et l'autre représente uniquement tous les autres utilisateurs qui ne sont ni le propriétaire ni le groupe.

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

Les autorisations sont écrites comme suit: le premier bit est un tiret ou la lettre d. Tiret signifie que c'est un fichier et est synonyme de répertoire. Notez que le premier bit peut aussi ê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 destiné à la lecture, le deuxième bit à l'écriture et le troisième bit à l'exécution. Les trois premiers bits sont destinés au propriétaire, les trois derniers bits au groupe et les trois derniers bits aux autres. Voici une explication plus visuelle.

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

Si vous regardez le résultat de la commande ls -l, vous remarquerez que mon fichier de texte de pratique dispose des 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 d'autorisations de lecture / écriture / exécution, mais le groupe et les autres utilisateurs disposent uniquement d'une autorisation de lecture.

Représentation du nombre octal

C'est ainsi que 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 ultérieurement, vous verrez que vous pouvez modifier les autorisations à l'aide de symboles ou de nombres octaux.

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

La permission de lecture est représentée par 4, écrire par 2 et exécuter par 1. Il suffit de les additionner pour obtenir la permission 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 lecture et écriture. Le deuxième sera le même que le troisième nombre octal. Nous avons ici 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 numéro est 7, que nous ne pouvons obtenir qu'en ajoutant 4 + 2 + 1, ce qui signifie que le propriétaire dispose des droits 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.

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

Utilisation de chmod pour modifier les autorisations

Maintenant que nous savons comment lire les autorisations, voyons comment nous pouvons les modifier. L'utilitaire le plus simple à utiliser à cette fin est la commande chmod. Voici comment ça fonctionne. La meilleure façon d’expliquer la commande est de donner 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 autre, nous pourrions le faire de deux manières. Nous pourrions utiliser la méthode du symbole ou la méthode octale. Pour la méthode du symbole, procédez comme suit, comme indiqué ci-dessous:

La commande exacte est

chmod un + x nom de fichier

La syntaxe est la suivante: la ou les lettres représentant le propriétaire (vous), groupe (g), autre (o) ou tous (une) suivi d'un + pour ajouter des autorisations ou un - pour enlever les autorisations puis la lettre pour l’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 à tous les utilisateurs. Le résultat que vous pouvez 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.

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

chmod go-wx nomfichier

Depuis que je veux changer les permissions pour groupe et autre, j'utilise la lettre g et la lettre o. Je veux supprimer les autorisations, alors j'utilise le - signe. Enfin, je veux supprimer les autorisations d’écriture et d’exécution, alors j’utilise w et X. Voici une petite table pratique pour l’utilisation des symboles:

Donc c'est 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 facile. Octal est bien parce que vous pouvez ajouter ou supprimer des autorisations en une seule fois.

Si nous commençons avec les permissions suivantes sur un fichier, voyons comment nous pouvons les changer en utilisant la méthode octal:

-rw-rw-rw-

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

chmod 744 nom de fichier

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

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

chmod 640 nom de fichier

Ici, nous avons donné au propriétaire des autorisations de lecture / écriture, au groupe uniquement des autorisations de lecture et à l’autre groupe sans 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 être beaucoup plus compliqué que cela, mais pour les débutants, c'est un bon point de départ. Je posterai plus d'articles sur des autorisations plus avancées dans le futur. Si vous avez des questions, n'hésitez pas à commenter. Prendre plaisir!