Gérer les permissions des fichiers et des répertoires sous Linux

CompTIABeginner
Pratiquer maintenant

Introduction

Dans cet atelier, vous allez acquérir les compétences fondamentales pour gérer les permissions des fichiers et des répertoires dans un environnement Linux. Vous commencerez par configurer un espace de travail dédié, en créant un nouveau répertoire et un fichier d'exemple qui serviront de base aux exercices. Cette approche pratique vous permettra de vous exercer au contrôle de l'accès aux données à l'aide des outils essentiels de la ligne de commande.

Tout au long de cet atelier, vous utiliserez la commande chown pour modifier la propriété des fichiers et la commande chmod pour ajuster les droits de lecture, d'écriture et d'exécution pour différents utilisateurs et groupes. Vous appliquerez d'abord ces concepts à un fichier individuel, puis vous découvrirez comment ces permissions affectent spécifiquement l'accès aux répertoires. À la fin de cette session, vous serez en mesure de sécuriser efficacement les fichiers et de gérer l'accès des utilisateurs sur un système Linux.

Préparer l'espace de travail et créer un fichier

Dans cette étape, vous allez commencer par configurer un espace de travail dédié à cet atelier. L'organisation des fichiers dans des répertoires spécifiques est une pratique fondamentale sous Linux pour maintenir un système de fichiers propre et gérable. Vous allez créer un répertoire, puis un nouveau fichier à l'intérieur, qui servira de sujet pour les exercices de gestion des permissions dans les étapes suivantes.

Tout d'abord, créons un nouveau répertoire nommé RandD (pour Recherche et Développement) à l'intérieur de votre répertoire de travail actuel, ~/project. La commande mkdir est utilisée pour créer de nouveaux répertoires.

Exécutez la commande suivante dans votre terminal :

mkdir RandD

Ensuite, déplacez-vous dans le répertoire RandD que vous venez de créer. La commande cd (change directory) permet de naviguer entre les répertoires du système de fichiers.

cd RandD

L'invite de votre terminal doit maintenant indiquer que vous vous trouvez dans le répertoire ~/project/RandD.

Maintenant, créons un fichier vide qui représentera un document de conception. La commande touch est un moyen simple de créer un nouveau fichier vide. Si le fichier existe déjà, touch met à jour sa date de modification sans modifier son contenu.

Créez un nouveau fichier nommé design_doc.odt :

touch design_doc.odt

Pour confirmer que le fichier a été créé et pour inspecter ses propriétés par défaut, utilisez la commande ls -l. Cette commande liste le contenu du répertoire actuel au format long, fournissant des informations détaillées telles que les permissions, le propriétaire, le groupe, la taille et la date de modification.

ls -l

Vous devriez voir une sortie similaire à celle-ci. Notez que par défaut, le nouveau fichier appartient à votre compte utilisateur (labex) et à votre groupe principal (labex). La chaîne de permissions -rw-rw-r-- sera expliquée en détail dans les prochaines étapes.

total 0
-rw-rw-r-- 1 labex labex 0 Jun 26 10:36 design_doc.odt

Vous avez maintenant préparé avec succès l'espace de travail et créé le fichier cible pour cet atelier. Dans les étapes suivantes, vous apprendrez à modifier sa propriété et ses permissions.

Changer la propriété d'un fichier avec la commande chown

Dans cette étape, vous apprendrez à modifier le propriétaire d'un fichier. Sous Linux, chaque fichier et répertoire est attribué à un propriétaire (un utilisateur spécifique) et à un groupe. Cette propriété est la pierre angulaire du modèle de sécurité Linux, car elle aide à déterminer qui a le droit de lire, d'écrire et d'exécuter des fichiers. La commande utilisée pour changer la propriété est chown.

Notre scénario exige que le fichier design_doc.odt soit géré par un nouvel utilisateur, student1, et un nouveau groupe collaboratif, research. Comme cet utilisateur et ce groupe n'existent pas encore, vous devez d'abord les créer.

Assurez-vous d'être toujours dans le répertoire ~/project/RandD. Si ce n'est pas le cas, utilisez la commande cd ~/project/RandD pour vous y rendre.

Tout d'abord, créez le groupe research à l'aide de la commande groupadd. Il s'agit d'une opération au niveau du système qui nécessite des privilèges administratifs, vous devez donc utiliser sudo.

sudo groupadd research

Ensuite, créez l'utilisateur student1 avec la commande useradd. L'option -m est utilisée pour créer un répertoire personnel (home) pour le nouvel utilisateur, ce qui est une pratique standard. Cela nécessite également sudo.

sudo useradd -m student1

Maintenant que l'utilisateur student1 et le groupe research existent, vous pouvez changer la propriété du fichier design_doc.odt. La syntaxe de chown est chown utilisateur:groupe nom_du_fichier. Vous avez besoin de sudo pour exécuter cette commande car vous attribuez le fichier à un autre utilisateur.

sudo chown student1:research design_doc.odt

Pour vérifier que la propriété a été mise à jour, utilisez à nouveau la commande ls -l.

ls -l

La sortie affichera désormais student1 comme propriétaire utilisateur et research comme propriétaire de groupe.

total 0
-rw-rw-r-- 1 student1 research 0 Jun 26 10:36 design_doc.odt

Comparez cela avec la sortie précédente. Les troisième et quatrième colonnes sont passées de labex labex à student1 research, confirmant que votre commande a réussi. Vous avez maintenant transféré la propriété du document de conception.

Modifier les permissions de fichiers avec la commande chmod

Dans cette étape, vous apprendrez à contrôler qui peut lire, écrire ou exécuter un fichier à l'aide de la commande chmod (change mode). Les permissions de fichiers sont un aspect fondamental du modèle de sécurité Linux. Vous allez vous entraîner à supprimer les permissions pour les "autres" afin de rendre le document plus sûr.

Tout d'abord, assurez-vous d'être dans le répertoire ~/project/RandD. Réexaminons les permissions actuelles de design_doc.odt avec ls -l.

ls -l
-rw-rw-r-- 1 student1 research 0 Jun 26 10:36 design_doc.odt

La chaîne -rw-rw-r-- représente les permissions du fichier. Elle est divisée en trois ensembles de trois caractères pour l'utilisateur (propriétaire), le groupe et les autres (tous les autres).

  • rw- : Le propriétaire, student1, a les permissions de lecture (read) et d'écriture (write).
  • rw- : Le groupe, research, a déjà les permissions de lecture et d'écriture.
  • r-- : Les autres n'ont que la permission de lecture.

Comme vous pouvez le voir, le groupe research a déjà un accès en écriture à ce document, ce qui permet la collaboration. Cependant, pour garantir la confidentialité du document, vous devez supprimer toutes les permissions pour les "autres". Vous pouvez y parvenir en utilisant chmod avec la notation octale (numérique), qui est une méthode courante et efficace.

Vérifions à nouveau les permissions actuelles :

ls -l

La sortie confirme les permissions actuelles :

-rw-rw-r-- 1 student1 research 0 Jun 26 10:36 design_doc.odt

Maintenant, pour garantir que le document reste confidentiel, vous devez supprimer toutes les permissions pour les "autres".

Voici comment fonctionnent les permissions octales :

  • r (lecture) = 4
  • w (écriture) = 2
  • x (exécution) = 1

Vous additionnez les chiffres pour obtenir les permissions souhaitées pour chaque catégorie (utilisateur, groupe, autres).

  • Utilisateur : lecture (4) + écriture (2) = 6
  • Groupe : lecture (4) + écriture (2) = 6
  • Autres : aucune permission = 0

Le code de permission résultant est 660. Appliquons-le.

sudo chmod 660 design_doc.odt

Enfin, vérifiez les permissions une dernière fois.

ls -l

La sortie confirme que les "autres" n'ont plus aucune permission (---), sécurisant ainsi le document.

-rw-rw---- 1 student1 research 0 Jun 26 10:36 design_doc.odt

Vous avez modifié avec succès les permissions du fichier pour permettre la collaboration de groupe tout en restreignant l'accès aux tiers.

Contrôler les permissions d'accès aux répertoires

Dans cette dernière étape, vous allez sécuriser l'ensemble du répertoire RandD. Tout comme les fichiers, les répertoires ont des permissions qui contrôlent l'accès. Cependant, la signification des permissions de lecture, d'écriture et d'exécution est différente pour les répertoires.

  • r (lecture) : Permet à un utilisateur de lister le contenu du répertoire (c'est-à-dire de voir les noms des fichiers et sous-répertoires à l'intérieur).
  • w (écriture) : Permet à un utilisateur de créer, supprimer et renommer des fichiers dans le répertoire. Cette permission est puissante, car elle permet de modifier le contenu du répertoire quelles que soient les permissions sur les fichiers eux-mêmes.
  • x (exécution) : Permet à un utilisateur d'entrer dans le répertoire (par exemple, avec cd) et d'accéder aux fichiers ou sous-répertoires qu'il contient. Sans la permission d'exécution, vous ne pouvez accéder à aucun élément à l'intérieur du répertoire, même si vous avez la permission de lecture.

Tout d'abord, remontez dans le répertoire parent, ~/project, afin de pouvoir agir sur le répertoire RandD lui-même.

cd ..

Maintenant, inspectons la propriété et les permissions actuelles du répertoire RandD à l'aide de la commande ls -ld. L'option -d est cruciale ici ; elle indique à ls d'afficher les informations sur le répertoire lui-même, et non sur son contenu.

ls -ld RandD

La sortie initiale ressemblera à ceci :

drwxrwxr-x 2 labex labex 28 Jun 26 10:36 RandD

Cela montre que le propriétaire (labex) a un accès complet (rwx), le groupe (labex) a également un accès complet (rwx), et les autres peuvent seulement lire et entrer dans le répertoire (r-x). Pour en faire un dossier collaboratif approprié pour l'équipe research, vous devez d'abord changer l'appartenance au groupe du répertoire pour research.

sudo chown :research RandD

Ensuite, vous allez définir les permissions pour donner au propriétaire (labex) et au groupe (research) un contrôle total, tout en supprimant complètement l'accès pour les autres. La permission souhaitée est rwxrwx---, ce qui correspond au code octal 770. En tant que propriétaire du répertoire, vous pouvez modifier ses permissions sans utiliser sudo.

chmod 770 RandD

Enfin, vérifions les changements.

ls -ld RandD

La sortie devrait maintenant refléter la nouvelle propriété et les nouvelles permissions, sécurisant ainsi le répertoire pour votre équipe.

drwxrwx--- 2 labex research 28 Jun 26 10:36 RandD

L'utilisateur labex et tous les membres du groupe research disposent désormais des droits complets de lecture, d'écriture et d'exécution sur le répertoire RandD, tandis que tous les autres utilisateurs n'y ont aucun accès. Vous avez configuré avec succès un espace collaboratif sécurisé.

Résumé

Dans cet atelier, vous avez appris les étapes fondamentales pour préparer un espace de travail dans un environnement Linux. Cela a impliqué la création d'un nouveau répertoire à l'aide de la commande mkdir, la navigation à l'intérieur avec cd, et la création d'un fichier vide avec touch. Vous vous êtes également exercé à utiliser la commande ls -l pour inspecter les propriétés détaillées du fichier nouvellement créé, en observant son propriétaire, son groupe et ses paramètres de permission par défaut, ce qui a jeté les bases des tâches de gestion ultérieures.

En vous appuyant sur ces bases, vous avez exploré les concepts clés de la sécurité du système de fichiers Linux. L'atelier a démontré comment changer la propriété d'un fichier à l'aide de la commande chown, transférant ainsi le contrôle à un autre utilisateur ou groupe. Vous avez ensuite appris à modifier les permissions de lecture, d'écriture et d'exécution pour le propriétaire, le groupe et les autres à l'aide de la commande chmod. Enfin, l'atelier a abordé la manière d'appliquer ces concepts de permission spécifiquement aux répertoires afin de contrôler l'accès aux fichiers qu'ils contiennent.