Une introduction aux autorisations Linux

introduction

Linux est un système d’exploitation multi-utilisateur basé sur les concepts Unix de propriété de fichier et de permission pour assurer la sécurité au niveau du système de fichiers. Si vous envisagez d’améliorer vos compétences en Linux, il est essentiel que vous compreniez bien le fonctionnement de la propriété et des autorisations. Il existe de nombreuses subtilités dans la gestion de la propriété et des autorisations de fichiers, mais nous ferons de notre mieux pour en résumer les concepts jusqu’aux détails nécessaires à une compréhension fondamentale de leur fonctionnement.

Dans ce didacticiel, nous verrons comment afficher et comprendre la propriété et les autorisations de Linux. Si vous recherchez un didacticiel sur la modification des autorisations, consultez ce guide: https://www.digitalocean.com/community/tutorials/linux-permissions-basics-and-how-to-use-umask-on- a-vps # types-permissions [Notions de base sur les autorisations Linux et comment utiliser Umask sur un VPS]

Conditions préalables

Assurez-vous de bien comprendre les concepts abordés dans les didacticiels précédents de cette série:

L’accès à un serveur Linux n’est pas strictement nécessaire pour suivre ce tutoriel, mais en avoir un à utiliser vous permettra d’acquérir une expérience de première main. Si vous souhaitez en configurer un, découvrez ce lien pour obtenir de l’aide.

À propos des utilisateurs

Comme mentionné dans l’introduction, Linux est un système multi-utilisateur. Nous devons comprendre les bases de Linux users et groups avant de pouvoir parler de propriété et d’autorisations, car ce sont les entités auxquelles s’appliquent la propriété et les autorisations. Commençons par les bases de ce que sont les utilisateurs.

Sous Linux, il existe deux types d’utilisateurs: system users et normordinites. Traditionnellement, les utilisateurs système sont habitués à exécuter des processus non interactifs ou en arrière-plan sur un système, tandis que les utilisateurs habituels sont utilisés pour la connexion et l’exécution interactive de processus. Lorsque vous vous connectez pour la première fois à un système Linux, vous remarquerez peut-être qu’il commence avec de nombreux utilisateurs du système qui exécutent les services dont dépend le système d’exploitation - c’est tout à fait normal.

Un moyen simple de voir tous les utilisateurs d’un système consiste à consulter le contenu du fichier + / etc / passwd +. Chaque ligne de ce fichier contient des informations sur un seul utilisateur, en commençant par son user name (le nom précédant le premier +: +). Imprimez le fichier + passwd + avec cette commande:

cat /etc/passwd

Super-utilisateur

Outre les deux types d’utilisateurs, il existe l’utilisateur superuser ou root qui peut remplacer toutes les restrictions relatives à la propriété de fichiers et aux autorisations. En pratique, cela signifie que le superutilisateur a le droit d’accéder à tout ce qui se trouve sur son propre serveur. Cet utilisateur est utilisé pour effectuer des modifications à l’échelle du système et doit être gardé en sécurité.

Il est également possible de configurer d’autres comptes d’utilisateur avec la possibilité d’assumer des «droits de superutilisateur». En fait, la création d’un utilisateur normal doté des privilèges + sudo + pour les tâches d’administration système est considérée comme une pratique recommandée.

À propos des groupes

Les groupes sont des collections de zéro utilisateur ou plus. Un utilisateur appartient à un groupe par défaut et peut également être membre de l’un des autres groupes d’un serveur.

Un moyen facile de voir tous les groupes et leurs membres est de regarder dans le fichier + / etc / group + sur un serveur. Nous ne couvrirons pas la gestion de groupe dans cet article, mais vous pouvez exécuter cette commande si vous êtes curieux de connaître vos groupes:

cat /etc/group

Maintenant que vous savez ce que sont les utilisateurs et les groupes, parlons de la propriété et des autorisations des fichiers!

Affichage de la propriété et des autorisations

Sous Linux, chaque fichier appartient à un utilisateur et à un groupe, et possède ses propres autorisations d’accès. Voyons comment afficher la propriété et les autorisations d’un fichier.

Le moyen le plus courant d’afficher les autorisations d’un fichier consiste à utiliser + ls + avec l’option longue liste, par exemple. + ls -l monfichier +. Si vous souhaitez afficher les autorisations de tous les fichiers de votre répertoire actuel, exécutez la commande sans argument, comme ceci:

ls -l
  • Conseil: * Si vous êtes dans un répertoire personnel vide et que vous n’avez pas encore créé de fichier à afficher, vous pouvez suivre en répertoriant le contenu du répertoire + / etc + en exécutant la commande suivante: `+ ls - l / etc + `

Voici un exemple de capture d’écran de ce à quoi la sortie pourrait ressembler, avec les étiquettes de chaque colonne de sortie:

image: https: //assets.digitalocean.com/articles/linux_basics/ls-l.png [ls -l]

Notez que chaque mode de fichier (qui contient des autorisations), son propriétaire, son groupe et son nom sont répertoriés. Mis à part la colonne Mode, cette liste est assez facile à comprendre. Pour aider à expliquer ce que signifient toutes ces lettres et ces traits d’union, décomposons la colonne Mode en ses composants.

Mode Compréhension

Pour vous aider à comprendre la signification de tous les regroupements et de toutes les lettres, jetez un coup d’œil à cette image agrandie du mode du premier fichier de l’exemple ci-dessus:

image: https: //assets.digitalocean.com/articles/linux_basics/mode.png [Ventilation du mode et des autorisations]

Type de fichier

Sous Linux, il existe deux types de fichiers de base: normal et special. Le type de fichier est indiqué par le premier caractère du mode d’un fichier. Dans ce guide, nous l’appelons le type_fichier field_.

Les fichiers normaux peuvent être identifiés par des fichiers avec un tiret (+ - +) dans leurs champs de type de fichier. Les fichiers normaux sont simplement des fichiers simples pouvant contenir des données. Ils sont appelés fichiers normaux ou normaux pour les distinguer des fichiers spéciaux.

Les fichiers spéciaux peuvent être identifiés par des fichiers comportant un caractère sans trait d’union, tel qu’une lettre, dans leurs champs de type de fichier, et gérés par le système d’exploitation différemment des fichiers normaux. Le caractère qui apparaît dans le champ Type de fichier indique le type de fichier spécial qu’un fichier particulier est. Par exemple, un répertoire, qui est le type de fichier spécial le plus courant, est identifié par le caractère + d + qui apparaît dans son champ de type de fichier (comme dans la capture d’écran précédente). Il existe plusieurs autres types de fichiers spéciaux, mais ils ne sont pas essentiels à ce que nous apprenons ici.

Classes d’autorisations

D’après le diagramme, nous savons que la colonne Mode indique le type de fichier, suivi de trois triades, ou classes, d’autorisations: utilisateur (propriétaire), groupe et autre. L’ordre des classes est cohérent dans toutes les distributions Linux.

Voyons quels utilisateurs appartiennent à chaque classe d’autorisations:

  • * Utilisateur *: Le propriétaire d’un fichier appartient à cette classe

  • * Groupe *: Les membres du groupe de fichiers appartiennent à cette classe

  • * Other *: Tous les utilisateurs qui ne font pas partie des classes user ou group appartiennent à cette classe.

Lecture des autorisations symboliques

Ensuite, faites attention aux ensembles de trois caractères, ou triades, car ils désignent les autorisations, sous forme symbolique, que chaque classe a pour un fichier donné.

Dans chaque triade, les autorisations de lecture, d’écriture et d’exécution sont représentées de la manière suivante:

  • * Lire *: Indiqué par un + r + en première position

  • * Write *: indiqué par un + w + en deuxième position

  • * Execute *: Indiqué par un + x + en troisième position. Dans certains cas particuliers, il peut y avoir un caractère différent ici

Un trait d’union (+ - +) à la place de l’un de ces caractères indique que l’autorisation correspondante n’est pas disponible pour la classe respective. Par exemple, si le triade group d’un fichier est + r - +, le fichier est en lecture seule pour le groupe associé au fichier.

Comprendre lire, écrire, exécuter

Maintenant que vous savez lire les autorisations d’un fichier, vous voudrez probablement savoir ce que chacune des autorisations permet réellement aux utilisateurs de faire. Nous expliquerons chaque autorisation individuellement, mais gardez à l’esprit qu’elles sont souvent utilisées en combinaison pour permettre un accès significatif aux fichiers et aux répertoires.

Voici un aperçu rapide de l’accès que les trois types d’autorisations de base accordent à un utilisateur.

Read

Pour un fichier normal, une autorisation de lecture permet à un utilisateur d’afficher le contenu du fichier.

Pour un répertoire, l’autorisation de lecture permet à un utilisateur d’afficher les noms du fichier dans le répertoire.

Écrire

Pour un fichier normal, une autorisation en écriture permet à un utilisateur de modifier et de supprimer le fichier.

Pour un répertoire, l’autorisation d’écriture permet à un utilisateur de le supprimer, de modifier son contenu (créer, supprimer et renommer des fichiers qu’il contient) et de modifier le contenu des fichiers qu’il peut lire.

Exécuter

Pour un fichier normal, l’autorisation d’exécution permet à un utilisateur d’exécuter un fichier (l’utilisateur doit également disposer d’une autorisation de lecture). En tant que tel, les autorisations d’exécution doivent être définies pour les programmes exécutables et les scripts shell avant qu’un utilisateur puisse les exécuter.

Pour un répertoire, la permission d’exécution permet à un utilisateur d’accéder ou de se déplacer dans (c.-à-d. + cd +) et accéder aux métadonnées sur les fichiers du répertoire (les informations répertoriées dans un + ls -l +).

Exemples de modes (et autorisations)

Maintenant que nous savons lire le mode d’un fichier et comprendre le sens de chaque autorisation, nous allons présenter quelques exemples de modes communs, accompagnés de brèves explications, afin de rassembler les concepts.

  • + -rw ------- +: Un fichier uniquement accessible par son propriétaire

  • + -rwxr-xr-x +: fichier exécutable par tous les utilisateurs du système. Un fichier «exécutable par le monde»

  • + -rw-rw-rw- +: fichier ouvert à la modification par tous les utilisateurs du système. Un fichier "en écriture"

  • + drwxr-xr-x +: Un répertoire accessible à tous les utilisateurs du système.

  • + drwxrwx --- +: un répertoire modifiable (y compris son contenu) par son propriétaire et son groupe

  • + drwxr-x --- +: Un répertoire accessible par son groupe

Comme vous l’avez peut-être remarqué, le propriétaire d’un fichier jouit généralement du plus grand nombre d’autorisations par rapport aux deux autres classes. En règle générale, vous constaterez que les classes group et other ne disposent que d’un sous-ensemble des autorisations du propriétaire (équivalentes ou inférieures). Cela a du sens car les fichiers ne doivent être accessibles qu’aux utilisateurs qui en ont besoin pour une raison particulière.

Une autre chose à noter est que même si de nombreuses combinaisons d’autorisations sont possibles, seules certaines ont un sens dans la plupart des situations. Par exemple, l’accès write ou execute est presque toujours accompagné d’un accès read, car il est difficile à modifier et impossible à exécuter, quelque chose que vous ne pouvez pas lire.

Modification de la propriété et des autorisations

Pour que ce tutoriel reste simple, nous ne verrons pas comment modifier la propriété et les autorisations des fichiers ici. Pour apprendre à utiliser + chown +, + chgrp + et + chmod +, reportez-vous à ce guide: https://www.digitalocean.com/community/tutorials/linux-permissions-basics- et-comment-utiliser-umask-on-a-vps # types-of-permissions [Notions de base sur les autorisations Linux et comment utiliser Umask sur un VPS].

Conclusion

Vous devriez maintenant avoir une bonne compréhension du fonctionnement de la propriété et des autorisations sous Linux. Si vous souhaitez en savoir plus sur les bases de Linux, il est vivement recommandé de lire le prochain tutoriel de cette série: