JOUR 04 : Le Gardien de la Forteresse

LinuxBeginner
Pratiquer maintenant

Introduction

Bienvenue au quatrième jour chez LabEx Corporation, Gardien de la Forteresse ! Après votre brillant travail d'enquête hier pour résoudre les problèmes critiques du Projet Phoenix, le directeur technique (CTO) de l'entreprise vous a personnellement chargé de diriger la sécurité de l'ensemble du projet.

« Nous ne pouvons pas nous permettre un autre incident de sécurité », explique le CTO lors de votre briefing matinal. « Votre enquête a révélé que notre configuration de sécurité précédente était inadéquate. Sarah Chen et l'équipe de développement ont besoin d'un environnement à toute épreuve pour terminer le Projet Phoenix dans les délais. »

La crise récente a mis en évidence le besoin de mesures de sécurité robustes. Un nouveau prestataire va rejoindre l'équipe pour aider à accélérer le développement, et vous devez vous assurer que les contrôles d'accès sont parfaitement configurés. Vous devrez créer des systèmes de fichiers sécurisés, attribuer une propriété précise, définir des permissions granulaires et établir des espaces de travail collaboratifs qui protègent la propriété intellectuelle de TechNova.

Le succès du Projet Phoenix — et l'avenir de l'entreprise — dépend désormais de la forteresse numérique que vous construisez aujourd'hui. Sécurisons ce système !

Création d'un fichier sécurisé pour un nouveau projet

Votre première tâche consiste à créer un fichier qui stockera les clés sensibles du projet. Ce fichier doit être strictement confidentiel et accessible uniquement par son propriétaire.

Tâches

  • Créez un nouveau fichier vide nommé project_keys.txt dans le répertoire ~/project/phoenix_project.
  • Définissez les permissions de ce fichier de manière à ce que seul le propriétaire ait un accès en lecture et en écriture, et que personne d'autre (pas même les utilisateurs du même groupe) n'ait accès.

Exigences

  • Le fichier doit être nommé project_keys.txt.
  • Le fichier doit être situé à l'emplacement ~/project/phoenix_project/project_keys.txt.
  • Utilisez la commande chmod avec la notation numérique pour définir les permissions.

Conseils

  • Vous pouvez créer un fichier vide en utilisant la commande touch.
  • Rappelez-vous les valeurs numériques des permissions : lecture (4), écriture (2) et exécution (1).
  • La permission finale doit être 600 (lecture+écriture pour le propriétaire, rien pour le groupe et les autres).

Exemples

Une fois cette tâche terminée, vous devriez obtenir un résultat similaire à :

$ ls -l ~/project/phoenix_project/
-rw------- 1 labex labex 0 Sep 3 16:03 project_keys.txt

Les permissions du fichier indiquent -rw-------, ce qui signifie :

  • Le propriétaire a les permissions de lecture et d'écriture
  • Le groupe n'a aucune permission
  • Les autres n'ont aucune permission
✨ Vérifier la solution et pratiquer

Attribution de la propriété des ressources du projet

Le Projet Phoenix est dirigé par l'équipe de développement de Sarah Chen, avec le responsable technique dev_lead gérant le travail de développement principal. Cet utilisateur appartient au groupe developers avec lequel vous avez travaillé tout au long de la semaine. Vous devez transférer la propriété de tous les fichiers et répertoires du projet pour garantir un contrôle d'accès approprié.

Tâches

  • Changez le propriétaire du répertoire ~/project/phoenix_project et de tout son contenu pour l'utilisateur dev_lead.
  • Changez le groupe propriétaire du répertoire ~/project/phoenix_project et de tout son contenu pour le groupe developers.

Exigences

  • Le propriétaire utilisateur doit être dev_lead.
  • Le groupe propriétaire doit être developers.
  • Le changement de propriété doit s'appliquer de manière récursive à tous les fichiers et sous-répertoires dans ~/project/phoenix_project.
  • Vous devez utiliser la commande chown.

Conseils

  • La commande chown peut changer à la fois l'utilisateur et le groupe en même temps en utilisant la syntaxe user:group.
  • Cherchez une option dans la commande chown qui lui permet d'opérer sur les fichiers et les répertoires de manière récursive. La commande man chown est votre alliée.
  • Étant donné que les fichiers appartiennent actuellement à root, vous devrez utiliser sudo pour changer la propriété.

Exemples

Une fois cette tâche terminée, vous devriez obtenir un résultat similaire à :

$ ls -ld ~/project/phoenix_project/
drwxrwxr-x 4 dev_lead developers 53 Sep 3 16:00 ~/project/phoenix_project/

$ ls -l ~/project/phoenix_project/
total 0
drwxrwxr-x 2 dev_lead developers 27 Sep 3 16:00 docs
-rw------- 1 dev_lead developers 0 Sep 3 16:03 project_keys.txt
drwxrwxr-x 2 dev_lead developers 6 Sep 3 16:00 src

Tous les fichiers et répertoires doivent maintenant appartenir à :

  • Utilisateur : dev_lead
  • Groupe : developers
✨ Vérifier la solution et pratiquer

Sécurisation du répertoire principal du projet

Maintenant que la propriété est correcte, vous devez définir les permissions de base pour le répertoire principal du projet, ~/project/phoenix_project. La politique est la suivante : le propriétaire doit avoir un contrôle total, le groupe doit pouvoir lister les fichiers et entrer dans le répertoire, et les personnes extérieures ne doivent avoir aucun accès.

Tâches

  • Définissez les permissions pour le répertoire ~/project/phoenix_project.

Exigences

  • Le propriétaire (dev_lead) doit avoir les permissions de lecture, d'écriture et d'exécution.
  • Le groupe (developers) doit avoir les permissions de lecture et d'exécution.
  • Les autres ne doivent avoir aucune permission.
  • Utilisez la commande chmod pour appliquer ces permissions au répertoire ~/project/phoenix_project lui-même (pas de manière récursive).
  • Étant donné que le répertoire appartient à dev_lead, vous devrez peut-être utiliser sudo pour changer les permissions.

Conseils

  • La permission « exécution » sur un répertoire vous permet d'y accéder avec cd.
  • Calculez la valeur numérique de la permission pour le propriétaire, le groupe et les autres.
  • Propriétaire (rwx) = 4+2+1 = 7
  • Groupe (r-x) = 4+0+1 = 5
  • Autres (---) = 0+0+0 = 0

Exemples

Une fois cette tâche terminée, vous devriez obtenir un résultat similaire à :

$ ls -ld ~/project/phoenix_project/
drwxr-x--- 4 dev_lead developers 53 Sep 3 16:00 ~/project/phoenix_project/

Les permissions du répertoire indiquent drwxr-x---, ce qui signifie :

  • Le propriétaire (dev_lead) a les permissions de lecture, d'écriture et d'exécution
  • Le groupe (developers) a les permissions de lecture et d'exécution
  • Les autres n'ont aucune permission

Cela signifie que :

  • dev_lead peut accéder pleinement au répertoire
  • Les membres du groupe developers peuvent lister le contenu et entrer dans le répertoire
  • Les personnes extérieures n'ont aucun accès au répertoire
✨ Vérifier la solution et pratiquer

Configuration des permissions collaboratives pour l'équipe de développement

Remarque : Assurez-vous d'avoir d'abord terminé l'étape 2, qui définit la propriété de tous les répertoires du projet (y compris src) sur dev_lead:developers. Cette étape s'appuie sur ces paramètres de propriété.

L'équipe de développement doit collaborer efficacement au sein du répertoire ~/project/phoenix_project/src. Pour assurer une collaboration fluide, tout nouveau fichier ou répertoire créé dans src doit automatiquement appartenir au groupe developers. Cette permission spéciale n'affecte que le groupe propriétaire. Le propriétaire utilisateur restera le compte qui crée le fichier, et les permissions de lecture/écriture du fichier dépendront toujours de l' umask de cet utilisateur.

Tâches

  • Définissez une permission spéciale sur le répertoire ~/project/phoenix_project/src qui force tous les nouveaux fichiers et sous-répertoires créés en son sein à hériter de la propriété de groupe du répertoire src lui-même (qui est developers).

Exigences

  • La solution doit garantir que les nouveaux fichiers dans ~/project/phoenix_project/src héritent automatiquement du groupe developers.
  • Vous devez utiliser la commande chmod pour définir cette permission spéciale.
  • Vous devrez peut-être utiliser sudo pour définir les permissions sur des répertoires appartenant à d'autres utilisateurs.

Conseils

  • Cette permission spéciale est appelée le bit « set group ID » ou setgid.
  • Vous pouvez appliquer le bit setgid en utilisant la notation symbolique (g+s) ou numérique.
  • En notation numérique, le bit setgid a une valeur de 2. Il est placé avant les trois chiffres de permission standard (par exemple, 2770).

Exemples

Une fois cette tâche terminée, vous devriez obtenir un résultat similaire à :

$ ls -ld ~/project/phoenix_project/src/
drwxrws--- 2 dev_lead developers 6 Sep 3 16:00 ~/project/phoenix_project/src/

Le s dans la position d'exécution du groupe indique que le bit setgid est défini et que le groupe a la permission d'exécution. Maintenant, lorsque vous créez un nouveau fichier :

$ touch ~/project/phoenix_project/src/new_file.txt
$ ls -l ~/project/phoenix_project/src/new_file.txt
-rw-rw-r-- 1 labex developers 0 Apr 15 18:28 /home/labex/project/phoenix_project/src/new_file.txt

Remarquez que le nouveau fichier appartient automatiquement au groupe developers, même si vous êtes connecté en tant qu'utilisateur différent. Le propriétaire du fichier reste l'utilisateur qui a créé le fichier, tandis que le groupe propriétaire est hérité du répertoire src. Cela garantit un travail collaboratif au sein de l'équipe de développement tout en maintenant une propriété de groupe appropriée.

Les permissions indiquent :

  • Le propriétaire (dev_lead) a les permissions de lecture et d'écriture
  • Le groupe (developers) a les permissions de lecture et d'écriture
  • Les autres n'ont aucune permission
  • Le s minuscule dans la position d'exécution du groupe indique que le bit setgid est défini et que le groupe a la permission d'exécution
✨ Vérifier la solution et pratiquer

Résumé

Travail exceptionnel, Gardien de la Forteresse ! Vous avez réussi à construire une base de sécurité impénétrable pour le Projet Phoenix. Le CTO et Sarah Chen sont impressionnés par votre mise en œuvre complète de la sécurité. Le répertoire du projet est désormais une forteresse qui protégera la propriété intellectuelle de TechNova tout en permettant une collaboration transparente.

Tout au long de ce défi, vous avez maîtrisé des compétences essentielles en sécurité Linux :

  • Création de fichiers et permissions de base : Vous avez sécurisé les clés sensibles du projet avec des contrôles de permission précis.
  • Gestion de la propriété : Vous avez attribué avec expertise la propriété à l'équipe de développement de Sarah et à la direction technique.
  • Sécurité des répertoires : Vous avez équilibré l'accès et la sécurité pour l'infrastructure principale du projet.
  • Permissions avancées : Vous avez configuré les permissions setgid pour garantir des espaces de travail d'équipe collaboratifs avec héritage automatique de la propriété de groupe.
  • Espaces de travail collaboratifs : Vous avez configuré des espaces de collaboration d'équipe qui maintiennent la sécurité tout en favorisant la productivité.

Ces compétences avancées en sécurité ont prouvé votre préparation aux responsabilités d'administration système senior. Demain, vous relèverez votre dernier défi en tant que Gardien des Clés, en gérant l'élément humain de la sécurité du Projet Phoenix en contrôlant l'accès des utilisateurs au système !