De par sa conception, Linux est un système d’exploitation multi-utilisateurs. Dans un système d’entreprise, il y aurait plusieurs utilisateurs accédant au même système. Mais si n’importe quel utilisateur pouvait accéder et modifier tous les fichiers appartenant à d’autres utilisateurs ou fichiers système, cela constituerait certainement un risque pour la sécurité.

C’est pourquoi UNIX et donc Linux (Linux est un système de type Unix) a mis en place une mesure de sécurité intégrée. Cela garantit qu’un fichier ou un répertoire ne peut être consulté, modifié ou exécuté que par les utilisateurs souhaités.

Quel fichier serait accessible par quel utilisateur est décidé par deux facteurs sous Linux :

  • Propriété du fichier
  • Autorisation de fichier

Comprendre la propriété et l’autorisation des fichiers est crucial pour un utilisateur Linux. Je vais expliquer ces termes en détail ici.

Propriété des fichiers sous Linux

Remarque : Je pourrais utiliser le terme fichier ici, mais il s’applique également aux répertoires. Je suppose que vous savez que les répertoires sont des fichiers de toute façon.

Chaque fichier et répertoire sous Linux a trois types de propriétaires :

Utilisateur

L’utilisateur est le propriétaire du fichier. Lorsque vous créez un fichier, vous devenez le propriétaire du fichier. La propriété peut également être modifiée, mais nous verrons cela plus tard.

Groupe

Chaque utilisateur fait partie d’un ou plusieurs groupes. Un groupe se compose de plusieurs utilisateurs et c’est une façon de gérer les utilisateurs dans un environnement multi-utilisateurs.

Par exemple, si vous avez une équipe de développement, une équipe QA et une équipe sysadmin accédant au même système, vous devez créer des groupes distincts pour eux. De cette façon, vous pouvez gérer efficacement les fichiers et la sécurité du système. Cela permet de gagner du temps car au lieu d’ajouter manuellement une autorisation pour chaque utilisateur, vous pouvez simplement les ajouter à un groupe et modifier l’autorisation pour le groupe. Vous verrez comment le faire plus loin dans cet article.

Même si vous êtes le seul utilisateur du système, vous ferez toujours partie de nombreux groupes. Les distributions comme Ubuntu créent également un groupe avec le même nom que le nom de l’utilisateur.

💡Exécutez la commande 

groups pour voir à quels groupes d’utilisateurs vous appartenez.

Autre

‘Autre’ peut être considéré comme un super groupe avec tous les utilisateurs du système. Fondamentalement, toute personne ayant accès au système appartient à ce groupe.

En d’autres termes, “Utilisateur” est un utilisateur unique, Groupe est une collection d’utilisateurs et Autre se compose de tous les utilisateurs du système.

Autorisations de fichiers sous Linux

Chaque fichier et répertoire sous Linux dispose des trois autorisations suivantes pour les trois types de propriétaires :

Autorisations pour les fichiers

  • Lire – Peut afficher ou copier le contenu du fichier
  • Écrire – Peut modifier le contenu du fichier
  • Exécuter – Peut exécuter le fichier (s’il est exécutable)

Autorisations pour les répertoires

  • Lire – Peut lister tous les fichiers et copier les fichiers du répertoire
  • Écrire – Peut ajouter ou supprimer des fichiers dans le répertoire (nécessite également une autorisation d’exécution)
  • Exécuter – Peut entrer dans le répertoire

Comprendre les autorisations et la propriété des fichiers sous Linux

Maintenant que vous connaissez la terminologie de base des autorisations et de la propriété des fichiers, il est temps de la voir en action.

Vous pouvez utiliser la ‘ commande stat ‘ ou la ‘commande ls’ pour vérifier les permissions du fichier.

Si vous utilisez la commande ls avec l’option -l sur un fichier, vous verrez une sortie comme celle-ci :

-rwxrw-r-- 1 abhi itsfoss 457 Aug 10 11:55 agatha.txt

Permettez-moi d’expliquer cette sortie avec une image:

Autorisation de fichier Linux expliquée avec la commande ls

Permettez-moi d’expliquer plus en détail l’ensemble de la sortie :

  • Type de fichier : indique le type de fichier. d signifie répertoire, – signifie fichier normal, l signifie un lien symbolique .
  • Autorisations : ce champ affiche les autorisations définies sur un fichier. Je vais l’expliquer en détail dans la section suivante.
  • Nombre de liens durs : Indique si le fichier a des liens durs . Le nombre par défaut est un.
  • Utilisateur : L’utilisateur propriétaire des fichiers.
  • Groupe : Le groupe qui a accès à ce fichier. Un seul groupe peut être propriétaire d’un fichier à la fois.
  • Taille du fichier : Taille du fichier en octets.
  • Heure de modification : La date et l’heure auxquelles le fichier a été modifié pour la dernière fois.
  • Filename : Évidemment, le nom du fichier ou du répertoire.

Maintenant que vous avez compris la sortie de la commande ls -l, concentrons-nous sur la partie autorisation de fichier.

Dans la commande ci-dessus, vous voyez l’autorisation de fichier comme celle-ci au format à neuf chiffres :

rwxrw-r--

Chaque lettre indique une autorisation particulière :

  • r : autorisation de lecture
  • w : Autorisation d’écriture
  • x : Autorisation d’exécution
  • – : Aucune autorisation définie

Les autorisations sont toujours dans l’ordre de lecture, écriture et exécution, c’est-à-dire rwx. Ensuite, ces autorisations sont définies pour les trois types de propriétaires (voir la section propriété) dans l’ordre Utilisateur, Groupe et Autre.

Cette image expliquera mieux les choses :

Autorisation de fichier Linux expliquée

Donc, si vous regardez l’image ci-dessus maintenant, vous pouvez dire les choses suivantes sur les autorisations de fichiers :

  • Le fichier dispose d’autorisations de lecture, d’écriture et d’exécution pour le propriétaire de l’utilisateur. Mais qui est cet usage propriétaire du fichier ? Vous avez cette information dans la sortie de ls -l (c’est-à-dire l’utilisateur abhi).
  • Le fichier dispose d’autorisations de lecture et d’écriture pour le groupe, mais pas d’exécution. De quel groupe s’agit-il ? Vous avez les informations de groupe dans la sortie de la commande ls -l (c’est-à-dire group itsfoss).
  • Le fichier n’a qu’une autorisation de lecture pour les autres, c’est-à-dire tous ceux qui ont accès au système. Vous n’avez pas besoin de savoir de quel autre il s’agit car “autre” signifie tous les utilisateurs.

Maintenant, si vous voyez à nouveau l’intégralité de la commande ls -l, vous pouvez lire les autorisations et la propriété du fichier ensemble.

-rwxrw-r-- 1 abhi itsfoss 457 Aug 10 11:55 agatha.txt

Le fichier agatha.txt appartient à l’utilisateur abhi et abhi a les droits de lecture, d’écriture et d’exécution. Tous les membres du groupe istfoss ont un accès en lecture et en écriture à ce fichier tandis que tous les autres n’ont qu’un accès en lecture à ce fichier.

Remarque : l’utilisateur racine a des super pouvoirs et normalement, il a des autorisations de lecture, d’écriture et d’exécution sur tous les fichiers, même si vous ne le voyez pas dans les autorisations de fichiers.

Un même utilisateur peut être membre de plusieurs groupes mais seul le groupe principal de l’utilisateur est le groupe propriétaire d’un fichier créé par l’utilisateur. Le groupe principal d’un utilisateur peut être trouvé à l’aide de la commande id comme id -gn <username>. Laissez le nom d’utilisateur vide si vous essayez de trouver votre propre groupe principal.

Maintenant que vous savez comment trouver les autorisations sur un fichier, voyons comment vous pouvez modifier l’autorisation et la propriété d’un fichier.

Modifier les autorisations de fichiers sous Linux

Vous pouvez utiliser la commande chmod pour modifier les autorisations sur un fichier sous Linux.

📚Les autorisations étaient autrefois appelées 

mode d’accès et chmod était donc la forme abrégée de 

changer le mode d’accès .

Il existe deux manières d’utiliser la commande chmod :

  • Mode absolu
  • Mode symbolique

Utiliser chmod en mode absolu

En mode absolu, les autorisations sont représentées sous forme numérique (système octal pour être précis). Dans ce système, chaque autorisation de fichier est représentée par un nombre.

  • r (lire) = 4
  • w (écrire) = 2
  • x (exécuter) = 1
  • – (pas d’autorisation) = 0

Avec ces valeurs numériques, vous pouvez les combiner et ainsi un nombre peut être utilisé pour représenter l’ensemble d’autorisations.

NuméroAutorisation
0
1-X
2-dans-
3 (soit 2+1)-wx
4r–
5 (soit 4+1)réception
6 (soit 4+2)rw-
7 (soit 4+2+1)rwx

Pouvez-vous deviner l’autorisation de fichier en chiffres sur le fichier agatha.txt dans notre exemple jusqu’à présent ? C’est vrai, c’est 764.

Maintenant que vous savez quel nombre représente quelle autorisation, voyons comment modifier l’autorisation de fichier en utilisant ces connaissances.

Supposons que vous souhaitiez modifier l’autorisation du fichier sur agatha.txt afin que tout le monde puisse lire et écrire mais que personne ne puisse l’exécuter ? Dans ce cas, vous pouvez utiliser la commande chmod comme ceci :

chmod 666 agatha.txt

Si vous répertoriez agatha.txt maintenant, vous verrez que l’autorisation a été modifiée.

-rw-rw-rw- 1 abhishek abhishek 457 Aug 10 11:55 agatha.txt

Utiliser chmod en mode symbolique

Le problème avec le mode absolu est que vous devez toujours fournir trois numéros pour les trois propriétaires, même si vous souhaitez modifier le jeu d’autorisations pour un seul propriétaire.

C’est ici que vous pouvez utiliser le mode symbolique avec la commande chmod.

En mode symbolique, les propriétaires sont indiqués par les symboles suivants :

  • u = utilisateur propriétaire
  • g = propriétaire du groupe
  • o = autre
  • a = tous (utilisateur + groupe + autre)

Le mode symbolique utilise des opérateurs mathématiques pour effectuer les modifications d’autorisation :

  • + pour ajouter des autorisations
  • – pour supprimer les autorisations
  • = pour remplacer les autorisations existantes par une nouvelle valeur

Maintenant que vous savez, voyons comment utiliser la commande chmod en mode symbolique.

Dans notre exemple précédent, si vous souhaitez ajouter une autorisation d’exécution pour le propriétaire du groupe, vous pouvez utiliser la commande chmod comme ceci :

chmod g+x agatha.txt

Si vous regardez les autorisations sur ce fichier maintenant, vous verrez que l’autorisation d’exécution a maintenant été ajoutée :

-rw-rwxrw- 1 abhi itsfoss 457 Aug 10 11:55 agatha.txt

Vous pouvez également combiner plusieurs modifications d’autorisation dans une seule commande. Supposons que vous souhaitiez supprimer les autorisations de lecture et d’écriture et ajouter des autorisations d’exécution pour Autre. Vous souhaitez également ajouter une autorisation d’exécution pour le propriétaire de l’utilisateur. Vous pouvez tout faire en une seule commande :

chmod o-rw+x,u+x agatha.txt

Les autorisations résultantes ressembleraient à ceci :

-rwxrwx--x 1 abhi itsfoss 457 Aug 10 11:55 agatha.txt

Si vous souhaitez modifier les autorisations pour les trois types d’utilisateurs en même temps, vous pouvez l’utiliser de la manière suivante :

chmod a-x agatha.txt

Cela supprimera l’autorisation d’exécution pour tout le monde.

-rw-rw---- 1 abhi itsfoss 457 Aug 10 11:55 agatha.txt

Certaines personnes trouvent que la conversion des autorisations de fichiers d’un mode à un autre est un travail fastidieux. C’est pourquoi j’ai créé ce petit outil qui vous permet de calculer les autorisations de fichiers Linux dans différents modes en ligne .

Changer la propriété du fichier sous Linux

Pour changer la propriété d’un fichier, vous pouvez utiliser la commande chown . Vous pouvez facilement deviner que chown signifie changer de propriétaire.

Vous pouvez modifier l’utilisateur propriétaire d’un fichier de la manière suivante :

chown <new_user_name> <filename>

Si vous voulez changer l’utilisateur ainsi que le groupe, vous pouvez utiliser la commande chown comme ceci :

chown <new_user_name>:<new_user_group> <filename>

Si vous voulez juste changer de groupe, vous pouvez soit utiliser la commande chown de cette manière :

chown :<new_user_group> <filename>

ou utilisez la commande chgrp spécifiquement utilisée pour changer le propriétaire du groupe d’un fichier ou d’un répertoire. Vous pouvez deviner que chgrp signifie groupe de changement.

chgrp <new_user_group> <filename>

Dans notre exemple jusqu’à présent, si vous souhaitez changer le propriétaire et le groupe de l’utilisateur en root, vous pouvez utiliser la commande chown comme ceci :

sudo chown root:root agatha.txt

Cela changera la propriété du fichier en root pour l’utilisateur et le groupe.

-rw-rw---- 1 root root 457 Aug 10 11:55 agatha.txt

Remarquez que j’ai dû utiliser sudo avec chown? C’est parce que la racine est impliquée ici et pour gérer la racine, vous avez besoin des droits de superutilisateur.

Astuce : Deux groupes ne peuvent pas posséder le même fichier.

Astuce bonus : existe-t-il une priorité dans les autorisations de fichiers ?

Pensez à une situation où l’utilisateur propriétaire n’a aucune autorisation, le groupe a une autorisation de lecture tandis que d’autres ont des autorisations de lecture et d’écriture.

----r--rw- 1 abhi itsfoss 457 Aug 10 11:55 agatha.txt

Maintenant, si l’utilisateur abhi essaie de lire le fichier en utilisant la commande cat ou less , en sera-t-il capable ? La réponse est non car il n’a pas l’autorisation de lecture.

Mais l’utilisateur abhi fait partie du groupe itsfoss et le groupe a un accès en lecture. Zut! autre a l’autorisation de lecture et d’écriture. Cela devrait signifier que tout le monde (y compris l’utilisateur abhi) peut lire et écrire le fichier, n’est-ce pas ? Mauvais!

Sous Linux, la priorité va de l’utilisateur, puis du groupe, puis à l’autre. Le système Linux vérifie qui a initié le processus (cat ou moins dans notre exemple). Si l’utilisateur qui a lancé le processus est également l’utilisateur propriétaire du fichier, les bits d’autorisation utilisateur sont définis.

Si le propriétaire du fichier n’a pas lancé le processus, le système Linux vérifie le groupe. Si l’utilisateur qui a lancé le processus est dans le même groupe que le groupe propriétaire du fichier, le bit d’autorisations de groupe est défini.

Si ce propriétaire de processus n’est même pas dans le groupe en tant que propriétaire de groupe du fichier, les autres bits d’autorisation sont définis.

Et ensuite ?

J’espère que vous avez aimé l’article et que vous comprenez maintenant mieux le fonctionnement des autorisations de fichiers sous Linux.

Il existe des autorisations de fichiers avancées telles que SUID, GUID et sticky bit que vous pouvez apprendre ensuite, si vous le souhaitez.

Si vous avez des questions ou des suggestions ou si vous voulez simplement dire merci, veuillez laisser un commentaire ci-dessous. Si vous avez aimé l’article, partagez-le sur les réseaux sociaux ou divers forums. Cela nous aidera ainsi que les autres utilisateurs de Linux.

Étiqueté dans :

À propos de l'auteur

SAKHRI Mohamed

Le blog d'un passionné d'informatique qui partage des actualités, des tutoriels, des astuces, des outils en ligne et des logiciels pour Windows, macOS, Linux, Web designer et jeux vidéo.

Voir tous les articles