Gérer les permissions spéciales et l'umask sous Linux

LinuxBeginner
Pratiquer maintenant

Introduction

Dans cet atelier, vous allez apprendre à gérer les permissions spéciales et le paramètre umask dans un environnement Linux afin de sécuriser un espace de travail collaboratif. Vous découvrirez comment contrôler les permissions par défaut attribuées aux nouveaux fichiers et comment utiliser des bits de permission spéciaux, tels que le sticky bit, pour empêcher la suppression des fichiers par d'autres utilisateurs au sein d'un répertoire partagé.

Vous commencerez par préparer un environnement partagé simulé, ce qui implique la création d'un nouveau groupe d'utilisateurs et d'un répertoire, puis l'attribution de la propriété et des permissions appropriées. Vous modifierez ensuite la valeur de l' umask pour imposer des permissions par défaut plus strictes et vérifierez son effet en créant un nouveau fichier. Enfin, vous activerez le sticky bit sur le répertoire partagé et confirmerez son application, garantissant ainsi que seuls les propriétaires de fichiers peuvent supprimer leurs propres documents dans cet espace commun.

Préparer l'environnement et accéder au répertoire

Dans cette étape, vous allez préparer l'environnement pour la gestion des permissions de fichiers spéciales. Cela consiste à créer un répertoire dédié simulant un espace de travail partagé pour une équipe de recherche. Vous allez créer un nouveau groupe d'utilisateurs, un répertoire, puis lui assigner les propriétaires et les permissions adéquates. Toutes les opérations seront effectuées dans votre répertoire de projet, ~/project.

Tout d'abord, créons un nouveau groupe nommé research. Ce groupe représentera les membres de l'équipe ayant accès au répertoire partagé. Utilisez la commande sudo groupadd pour le créer. sudo est nécessaire car la création de groupes est une tâche administrative.

sudo groupadd research

Ensuite, créez un nouveau répertoire nommé RandD à l'intérieur de votre dossier ~/project. Ce sera notre répertoire de travail principal pour cet atelier.

mkdir ~/project/RandD

Maintenant, changez le groupe propriétaire du répertoire RandD fraîchement créé pour le groupe research. La commande chgrp est utilisée à cet effet.

sudo chgrp research ~/project/RandD

Pour garantir que seuls le propriétaire (l'utilisateur labex) et les membres du groupe research puissent accéder à ce répertoire, définissez ses permissions. Nous utiliserons la commande chmod avec le code numérique 770. Ce code accorde les droits de lecture, écriture et exécution (rwx, soit 4+2+1=7) à l'utilisateur et au groupe, et aucun droit (---, soit 0) aux autres.

chmod 770 ~/project/RandD

Vous pouvez vérifier les permissions et la propriété du répertoire à l'aide de la commande ls -ld. L'option -l affiche un format de liste détaillée, et l'option -d liste le répertoire lui-même plutôt que son contenu.

ls -ld ~/project/RandD

Vous devriez voir une sortie similaire à celle-ci, confirmant les permissions (drwxrwx---), le propriétaire (labex) et le groupe (research).

drwxrwx--- 2 labex research 4096 Dec 12 10:30 /home/labex/project/RandD

Enfin, déplacez-vous dans le répertoire RandD. C'est ici que vous effectuerez les tâches des étapes suivantes.

cd ~/project/RandD

Vous avez maintenant configuré avec succès votre environnement de travail.

Restreindre les permissions de fichiers par défaut avec umask 027

Dans cette étape, vous apprendrez à contrôler les permissions par défaut des nouveaux fichiers à l'aide de la commande umask. Lorsque vous créez un fichier, le système lui attribue un ensemble de permissions par défaut. Souvent, ces réglages sont trop permissifs, autorisant par exemple les "Autres" utilisateurs à lire vos fichiers. Dans un environnement sécurisé comme notre répertoire RandD, nous voulons restreindre cela.

La commande umask (masque de création de fichier utilisateur) spécifie les permissions qui doivent être retirées des permissions de base lors de la création d'un nouveau fichier ou répertoire.

  • Pour les fichiers, la permission de base est 666 (rw-rw-rw-).
  • Pour les répertoires, la permission de base est 777 (rwxrwxrwx).

Nous allons régler l' umask sur 027. Cette valeur indique au système de retirer les permissions suivantes :

  • Utilisateur (propriétaire) : 0 - Aucune permission retirée.
  • Groupe : 2 - Permission d'écriture retirée.
  • Autres : 7 (4+2+1) - Permissions de lecture, écriture et exécution retirées.

Cela signifie que tout nouveau fichier créé aura des permissions de 666 - 027 = 640 (rw-r-----), et tout nouveau répertoire aura des permissions de 777 - 027 = 750 (rwxr-x---).

Tout d'abord, modifiez les permissions par défaut pour votre session de terminal actuelle en saisissant umask 027 dans l'invite de commande. Assurez-vous d'être toujours dans le répertoire ~/project/RandD.

umask 027

Ensuite, vérifiez la nouvelle valeur de l' umask en tapant la commande seule.

umask

La commande devrait afficher la nouvelle valeur de l' umask. Le zéro initial indique qu'aucune permission spéciale (comme le sticky bit, que vous verrez plus tard) ne fait partie du masque.

027

Vous avez modifié avec succès les permissions de création de fichiers par défaut pour votre session actuelle. Dans l'étape suivante, vous créerez un fichier pour observer l'effet de ce nouvel umask.

Créer un fichier et vérifier les nouvelles permissions umask

Dans cette étape, vous allez mettre en pratique le nouveau réglage umask en créant un fichier. Cela démontrera comment les permissions par défaut que vous avez configurées à l'étape précédente sont automatiquement appliquées, protégeant ainsi votre nouveau document contre tout accès non autorisé. Vous devriez toujours vous trouver dans le répertoire ~/project/RandD.

Créons un nouveau fichier vide nommé schedule.odt à l'aide de la commande touch. La commande touch est un moyen simple de créer des fichiers vides ou de mettre à jour l'horodatage de fichiers existants.

touch schedule.odt

Maintenant que le fichier est créé, vous devez vérifier ses permissions. Utilisez la commande ls -l pour afficher les informations détaillées de schedule.odt.

ls -l schedule.odt

Vous verrez une sortie similaire à la suivante. La partie la plus importante est la première colonne, qui affiche les permissions du fichier.

-rw-r----- 1 labex research 0 Dec 12 10:35 schedule.odt

Analysons la chaîne de permissions -rw-r----- :

  • Le premier caractère - indique qu'il s'agit d'un fichier.
  • Les trois caractères suivants rw- sont les permissions pour l' utilisateur (propriétaire), à savoir lecture et écriture. Cela correspond à la valeur numérique 6.
  • Les trois caractères suivants r-- sont les permissions pour le groupe, à savoir lecture seule. Cela correspond à la valeur numérique 4.
  • Les trois derniers caractères --- sont les permissions pour les autres, ce qui signifie aucune permission. Cela correspond à la valeur numérique 0.

Ces permissions (640) sont le résultat direct de l'application de l' umask de 027 aux permissions de fichiers par défaut du système (666). L' umask a réussi à supprimer les droits d'écriture pour le groupe et tous les droits pour les autres, exactement comme prévu.

Définir le Sticky Bit sur un répertoire avec chmod 1771

Dans cette étape, vous allez résoudre un problème courant dans les répertoires partagés. Actuellement, n'importe quel membre du groupe research peut supprimer n'importe quel fichier dans le répertoire ~/project/RandD, même les fichiers créés par d'autres utilisateurs. Cela est dû au fait que la permission d'écriture sur un répertoire permet la création et la suppression de fichiers. Pour éviter les suppressions accidentelles ou malveillantes, vous allez définir une permission spéciale appelée "sticky bit".

Le sticky bit, lorsqu'il est appliqué à un répertoire, modifie ce comportement. Il garantit qu'un fichier à l'intérieur du répertoire ne peut être supprimé ou renommé que par le propriétaire du fichier, le propriétaire du répertoire ou l'utilisateur root. C'est la solution idéale pour les environnements collaboratifs comme notre répertoire RandD.

Vous utiliserez la commande chmod avec un nombre octal à quatre chiffres pour définir le sticky bit. La commande sera chmod 1771 RandD.

  • Le premier chiffre, 1, représente le sticky bit.
  • Les trois chiffres suivants, 771, définissent les permissions standard : rwx pour l'utilisateur, rwx pour le groupe, et --x pour les autres.

Tout d'abord, vous devez vous trouver dans le répertoire parent de RandD pour modifier ses permissions. Comme vous êtes actuellement dans ~/project/RandD, utilisez la commande cd .. pour remonter d'un niveau vers ~/project.

cd ..

Maintenant, depuis le répertoire ~/project, appliquez le sticky bit au répertoire RandD.

chmod 1771 RandD

Le sticky bit est maintenant activé sur le répertoire RandD. Dans la dernière étape, vous utiliserez la commande ls -l pour voir comment cette permission spéciale s'affiche et vérifier son effet.

Vérifier la permission Sticky Bit avec ls -l

Dans cette dernière étape, vous allez vérifier que le sticky bit a été correctement appliqué au répertoire RandD. La commande ls -l fournit un indicateur visuel pour les permissions spéciales comme le sticky bit. Vous devriez toujours être dans le répertoire ~/project.

À l'invite de commande, saisissez ls -ld RandD pour visualiser les permissions du répertoire lui-même.

ls -ld RandD

Examinez attentivement la sortie. Elle devrait ressembler à ceci :

drwxrwx--t 2 labex research 4096 Dec 12 10:45 RandD

Le changement clé se trouve dans la chaîne de permissions : drwxrwx--t.

  • Le d indique qu'il s'agit d'un répertoire.
  • Le premier rwx montre que l'utilisateur (labex) a tous les droits.
  • Le second rwx montre que le groupe research a tous les droits.
  • La partie finale, --t, est l'endroit où le sticky bit est affiché. Le t remplace ce qui serait normalement la permission d'exécution (x) pour les "autres". Un t minuscule indique que le sticky bit et la permission d'exécution pour les "autres" sont tous deux activés. Cela confirme que votre commande chmod 1771 a réussi.

Félicitations ! Vous avez configuré avec succès un répertoire partagé avec des permissions par défaut sécurisées via l' umask et protégé son contenu contre la suppression non autorisée en activant le sticky bit.

Résumé

Dans cet atelier, vous avez appris à préparer un répertoire partagé sécurisé pour un groupe d'utilisateurs. Cela a impliqué la création d'un nouveau groupe avec groupadd, la création d'un répertoire, puis l'utilisation de chgrp et chmod pour attribuer la propriété de groupe correcte et des permissions restrictives (770). Vous avez également pratiqué la manipulation des permissions par défaut pour les nouveaux fichiers et répertoires en définissant une valeur d' umask spécifique (027), puis vérifié son effet en créant un nouveau fichier et en inspectant ses permissions.

De plus, vous avez exploré les permissions spéciales en appliquant le sticky bit au répertoire partagé à l'aide de la commande chmod 1771. Vous avez appris que le sticky bit est essentiel pour les environnements collaboratifs, car il garantit que les utilisateurs ne peuvent supprimer ou renommer que les fichiers dont ils sont personnellement propriétaires, empêchant ainsi la suppression accidentelle ou malveillante du travail d'autrui. Enfin, vous avez vérifié que le sticky bit était correctement appliqué en utilisant ls -l et en identifiant le t dans la chaîne de permissions du répertoire.