J'ai suivi un cours sur Linux ces derniers mois et un aspect de Linux qui me confondait toujours était la façon dont les permissions fonctionnaient. Par exemple, lorsque je télécharge un fichier sur mon serveur Web et que j'obtiens une erreur, mon hébergeur me demande de modifier les autorisations de fichier à 755.
Je ne savais pas ce que cela signifiait, même si je changeais les autorisations ont corrigé le problème. J'ai maintenant réalisé que les permissions Linux ne sont pas si compliquées, il suffit de comprendre le système. Dans cet article, je vais parler des permissions Linux de haut niveau et vous montrer comment utiliser la commande chmod pour changer les permissions pour les fichiers et les dossiers.
Linux Permissions & amp; Niveaux
Sous Linux, il y a essentiellement trois permissions dont vous aurez normalement à vous soucier: lire, écrire et exécuter. Tous les trois sont assez explicites. Maintenant, lorsque ces autorisations sont appliquées à un fichier, elles sont appliquées dans les niveaux.
Il existe trois niveaux d'autorisations dans 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 l'autre représente uniquement tous les autres utilisateurs qui ne sont pas le propriétaire ou le groupe.
Lire, écrire et exécuter sont représentés soit comme des caractères symboliques, soit comme des nombres octaux. Par exemple, si vous faites un ls -l dans un répertoire avec quelques fichiers, vous verrez la représentation symbolique des permissions.
Les permissions sont écrites comme suit: le premier bit est un tiret ou la lettre d. Dashsignifie que c'est un fichier et dsignifie répertoire. Notez que le premier bit peut aussi être lsi le nom du fichier est un lien. Ensuite, il y a trois groupes de trois bits. Le premier bit dans chaque groupe est pour la lecture, le deuxième bit est pour l'écriture et le troisième bit pour l'exécution. Les trois premiers bits sont pour le propriétaire, les trois autres bits sont pour le groupe et les trois troisièmes bits sont pour les 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 Je n'ai pas cette permission. Dans l'exemple ci-dessus, le propriétaire, le groupe et tous les autres utilisateurs ont lu les permissions d'écriture et d'exécution.
Si vous regardez la sortie de la commande ls -l, vous remarquerez que mon fichier texte permissions suivantes:
-rw-rw-rw-
Cela signifie que tout le monde a seulement des permissions en lecture / écriture pour le fichier. Voici un autre exemple:
drwxr--r--
En regardant le premier bit, nous pouvons voir que les permissions sont pour un répertoire. Le propriétaire possède des autorisations de lecture / écriture / exécution, mais le groupe et les autres utilisateurs n'ont que l'autorisation de lecture.
Représentation des nombres octaux
Voici comment les permissions sont affichées sous Linux. La deuxième façon de représenter les mêmes autorisations est d'utiliser des nombres octaux. Quand nous utiliserons la commande chmod plus tard, vous verrez que vous pouvez changer les permissions en utilisant des symboles ou des nombres octaux.
Alors comment Linux représente-t-il lire, écrire et exécuter en utilisant des nombres octaux? Fondamentalement, il attribue simplement un numéro à chaque autorisation comme indiqué ci-dessous.
L'autorisation de lecture est représentée par 4, écrit par 2 et s'exécute par 1. Tout ce que vous avez à faire est de les ajouter pour obtenir l'autorisation octale. Par exemple, prenons l'exemple ci-dessus où tout le monde a toutes les permissions:
-rwxrwxrwx
Le propriétaire a rwx, donc nous allons 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'oeil à l'exemple où nous avons seulement donné des autorisations de lecture / écriture:
-rw-rw-rw-
Le premier nombre octal sera 4 + 2 puisque nous sommes ajouter lire et écrire. Le second sera le même que le troisième nombre octal. Ici, nous avons une valeur octale finale de 666.
Alors essayons maintenant dans l'autre sens. Disons que nous voulons savoir ce que les autorisations 755représentent? Eh bien, il est assez facile de déterminer si vous divisez par des 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 la permission lire / écrire / exécuter. Cinq ne peuvent être obtenus qu'en ajoutant 4 + 1, ce qui signifie que le groupe et les autres utilisateurs ont les autorisations de lecture et d'exécution.
Heureusement, c'est un bon explication de la façon de représenter les permissions sous Linux en utilisant des nombres octaux. C'est assez simple dans l'ensemble.
Utiliser chmod pour modifier les permissions
Maintenant que nous comprenons comment lire les permissions, voyons comment nous pouvons les changer. L'utilitaire le plus simple à utiliser à cette fin est la commande chmod. Voici comment cela fonctionne. La meilleure façon d'expliquer la commande est de passer en revue un exemple.
Commençons par les permissions dont nous avons parlé plus haut, à savoir:
-rw-rw-rw-
Si nous voulait ajouter l'autorisation d'exécution pour le propriétaire, le groupe et l'autre, nous pourrions y aller de deux façons. Nous pourrions utiliser la méthode des symboles ou la méthode octale. Pour la méthode des symboles, nous ferons ce qui suit, comme indiqué ci-dessous:
La commande exacte est
chmod a+x filename
La syntaxe est la suivante: la lettre ou les lettres représentant le propriétaire (u), le groupe (g), l'autre (<) ou tous (a) suivi d'un +pour l'ajout d'autorisations ou d'un -pour supprimer les autorisations, puis la lettre d'autorisation (rpour la lecture, wpour l'écriture et xpour l'exécution).
Dans l'exemple ci-dessus, j'ai ajouté exécuter l'autorisation pour tous les utilisateurs. Le résultat que vous pouvez voir dans la capture d'écran ci-dessus est un xpour le propriétaire, le groupe et l'autre. Maintenant, disons que je voulais supprimer les droits d'écriture et d'exécution 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 filename
Puisque je veux changer les permissions pour le groupe et l'autre, j'utilise la lettre get la lettre oJe souhaite supprimer les autorisations, j'utilise donc le signe -. Enfin, je veux supprimer les permissions d'écriture et d'exécution, donc j'utilise wet x. Voici une petite table pratique pour l'utilisation des symboles:
Voilà 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 sympa car vous pouvez ajouter ou supprimer des permissions en une fois.
Si nous commençons avec les permissions suivantes sur un fichier, voyons comment nous pouvons les changer en utilisant la méthode octale:
chmod 744 filename
>Cela signifie essentiellement que le propriétaire obtient la permission de lecture / écriture / exécution et que le groupe et les autres obtiennent la permission de lecture seulement. Comme vous pouvez le voir, il est facile d'ajouter ou de supprimer des permissions en une seule commande. Continuons et disons que je veux encore changer les permissions.
Maintenant, j'ai utilisé la commande suivante, encore une fois très simple:
chmod 640 filename
Ici, nous avons donné au propriétaire les permissions de lecture / écriture, le droit de lecture de groupe seulement et le groupe de non permission. 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 permissions Linux et cela peut être bien plus compliqué que cela, mais pour les débutants, c'est un bon point de départ. Je posterai plus d'articles sur des permissions plus avancées dans le futur. Si vous avez des questions, n'hésitez pas à commenter. Profitez-en!