GNU/Linux >> Tutoriels Linux >  >> Linux

Autorisations Linux :une introduction à chmod

[Vous voulez essayer Red Hat Enterprise Linux ? Téléchargez-le maintenant gratuitement.]

Si vous avez déjà travaillé sur le système Linux, vous avez certainement traité des fichiers, et cela signifie que vous avez peut-être rencontré des messages comme celui-ci ci-dessous :

localhost@user1$ cat /etc/sudoers
cat: /etc/sudoers: Permission denied

Ou, similaire à celui-ci, des messages d'erreur tels que "Vous n'avez pas les autorisations nécessaires pour télécharger des fichiers dans ce dossier", qui pourraient vous avoir empêché de lire, d'écrire ou d'accéder à un fichier particulier. Et, naturellement, cette erreur a pu vous amener à vous demander, du moins la première fois que vous avez rencontré ce problème, pourquoi l'accès vous a été refusé.

Jetons un coup d'œil aux autorisations de fichiers Linux et aux moyens de les restreindre, et jouons un peu avec les fichiers. Lorsque vous répertoriez des fichiers dans un répertoire particulier sous Linux, vous avez peut-être vu r, w et x et vous vous êtes demandé ce que ces lettres signifient. Ils ont une importance considérable pour déterminer exactement ce qu'un utilisateur particulier peut faire avec un fichier.

Prenons un exemple :

localhost@user1$ ls -ltr chmod_directory/
total 0
-rw-r--r--. 1 creator creator 0 Jul 29 21:55 I_Can_Write.txt
-rw-r--r--. 1 creator creator 0 Jul 29 21:55 I_Can_Execute.sh
-rw-r--r--. 1 creator creator 0 Jul 29 21:55 I_Can_Access.txt

Les autorisations de fichier par défaut sont rw-r--r-- (à partir de la valeur umask (traitée plus loin dans l'article)), comme indiqué dans l'exemple ci-dessus.

Chaque autorisation est associée à une valeur numérique :

  • r (lire) vaut 4
  • w (écrire) vaut 2
  • x (exécuter) a une valeur de 1

Ces valeurs sont additives pour chaque "triplet", ce qui signifie qu'une autorisation de fichier de rw- a la valeur de 6 et rwx a la valeur de 7. Comme indiqué ci-dessus, tout fichier nouvellement créé, la valeur par défaut est 644 (rw-r --r--), ce qui signifie que le propriétaire du fichier peut lire et écrire, et que tous les autres ne peuvent que lire ce fichier. Le premier triplet est l'autorisation pour le propriétaire/créateur du fichier, le second pour les autorisations de groupe et le troisième pour les autres (utilisateurs en dehors du propriétaire/créateur ou d'un groupe avec des autorisations). Ce paramètre est logique pour des raisons évidentes :le propriétaire doit avoir un contrôle plus élevé sur le contenu du fichier afin de pouvoir y lire et y écrire. D'autres pourraient vouloir lire le contenu mais pas le modifier. Bien sûr, vous pouvez modifier ce paramètre avec le chmod commande, qui est l'objet de cet article.

Donc, pour comprendre ce concept de manière plus simple, considérez les autorisations de fichiers comme une matrice 3x3, où les propriétaires, les groupes et les autres ont chacun des paramètres r, w et x. Dans l'exemple ci-dessus :

  • Le créateur du fichier (propriétaire/utilisateur) a les autorisations de lecture et d'écriture :-rw -r--r--.
  • Le créateur du groupe du fichier (groupe) dispose des autorisations de lecture :-rw-r-- r--.
  • D'autres ont des autorisations de lecture représentées par les derniers bits :-rw-r--r-- .

Voyons maintenant les valeurs d'autorisation par défaut pour un répertoire. Disons que le répertoire chmod_directory a été créé avec les autorisations par défaut de 755. Contrairement aux fichiers, un répertoire contient des fichiers. Pour que toute personne autre que le propriétaire puisse 'cd ' dans le répertoire, il a besoin d'une autorisation d'exécution, qui à son tour rend le répertoire :

  • Lisible, inscriptible et exécutable par le propriétaire (rwx vaut 7).
  • Lisible et exécutable par le groupe (r-x vaut 5).
  • Lisible et exécutable pour les autres (r-x est 5).

Remarque :La désignation r-x ne signifie PAS r moins x, cela signifie lecture et exécution, mais écriture manquante. Le - est un espace réservé pour une autorisation.

(Veuillez prendre une minute pour réfléchir à la raison pour laquelle il s'agit du comportement par défaut.)

Ok, maintenant que vous avez appris les bases des autorisations de fichiers et de répertoires, examinons le chmod commande, qui permet de modifier les autorisations pour les fichiers et les répertoires.

Comme mentionné dans la page de manuel :

This manual page documents the GNU version of chmod. chmod changes the file mode bits of each given file according to mode, which can be either a symbolic representation of changes to make, or an octal number representing the bit pattern for the new mode bits.

The format of a symbolic mode is [ugoa...][[+-=][perms...]...], where perms is either zero or more letters from the set rwxXst, or a single letter from the set ugo. Multiple symbolic modes can be given, separated by commas.

A combination of the letters ugoa controls which users' access to the file will be changed: the user who owns it (u), other users in the file's group (g), other users not in the file's group (o), or all users (a). If none of these are given, the effect is as if a were given, but bits that are set in the umask are not affected.

Utiliser la représentation octale

Pour modifier les autorisations de fichiers, vous pouvez soit utiliser une représentation octale (numérique), soit une représentation symbolique (les lettres). Dans la représentation octale, le premier chiffre est pour l'utilisateur, le deuxième chiffre est pour le groupe et le troisième chiffre est pour les autres. Examinons deux exemples de définition d'autorisations avec une représentation octale pour comprendre ce concept.

Exemple 1  :Si vous souhaitez accorder des autorisations de lecture (4), d'écriture (2) et d'exécution (1) à l'utilisateur et au groupe, et uniquement des autorisations de lecture (4) aux autres, vous pouvez utiliser :

localhost@user1$ chmod 774 <file-name>

Exemple 2  :Si vous souhaitez restreindre les autorisations d'écriture à tous les autres, à l'exception du propriétaire du fichier, vous pouvez utiliser :

localhost@user1$ chmod 744 <file-name>

Utiliser la représentation symbolique

Vous pouvez également modifier les autorisations à l'aide d'une représentation symbolique plutôt que numérique. La représentation symbolique attribue des autorisations à l'utilisateur (u), au groupe (g) et à d'autres (o) en utilisant des lettres (symboles) et les désignations de lettres :r, w et x.

Reprenons ces exemples, mais en utilisant une représentation symbolique.

Exemple 1  :lecture, écriture et exécution pour l'utilisateur et le groupe, plus lecture uniquement pour les autres, mappe comme :

localhost@user1$ chmod ug+rwx,o+r <filename>

Exemple 2  :Lire, écrire et exécuter pour l'utilisateur et lire uniquement les autorisations pour le groupe et les autres cartes en tant que :

localhost@user1$ chmod u+rwx,go+r <file-name>

Génial, je suis fier de vous tous :vous maîtrisez maintenant les concepts d'autorisation de fichiers. Mais je vous préviens qu'il existe deux scénarios dangereux que vous voudrez peut-être éviter, alors gardez cela comme une meilleure pratique lors de l'utilisation de chmod. Évitez d'utiliser des cas limites, tels que chmod 777 <file-name> et chmod 000 <filename> . Utilisation de chmod 777 <file-name> donne à tout le monde les permissions rwx, et ce n'est généralement pas une bonne pratique de donner les pleins pouvoirs à tous les utilisateurs d'un système. Le deuxième cas, je vous laisse le soin de le découvrir.

Utiliser des umasks

Je vais vous laisser avec un autre concept dont vous devez être conscient (umask) qui décide des autorisations par défaut pour un fichier. Dans l'ensemble, les valeurs par défaut sont :

  • Umask :0022
  • Fichier :0666
  • Répertoire :0777

Comme vous vous en souvenez peut-être, la valeur d'autorisation de fichier par défaut est 0644 et celle du répertoire par défaut est 0755. La valeur umask par défaut est soustraite de la valeur par défaut globale du fichier/répertoire. Vous pouvez définir les valeurs umask dans /etc/profile ou dans ~/.bashrc .

Conclusion

Chmod est une excellente commande Linux pour manipuler les autorisations de fichiers et de répertoires. Avec les concepts mentionnés dans cet article, vous disposez de connaissances suffisantes pour gérer les autorisations dans les distributions basées sur Linux.


Linux
  1. Introduction à la commande Linux chmod

  2. Bases des autorisations de fichiers Linux

  3. Une introduction à la surveillance des comptes utilisateur Linux

  4. Vérifiez les autorisations de fichiers Linux avec ls

  5. Aide-mémoire sur les autorisations de fichiers/répertoires Linux

Commande Chmod sous Linux (autorisations de fichiers)

Commande Chmod sous Linux

Autorisations Linux - Comment trouver les autorisations d'un fichier

Commande Chmod - Comment modifier les autorisations de fichiers sous Linux

Comprendre les autorisations de fichiers Linux

Exemples de commandes Linux chmod