Introduction
Bienvenue pour votre quatrième jour chez LabEx Corporation, gardien de la forteresse ! Après votre remarquable travail d'enquête hier, qui a permis de résoudre les problèmes critiques du projet Phoenix, le directeur technique de l'entreprise vous a personnellement chargé de diriger la sécurité de l'ensemble du projet.
« Nous ne pouvons pas nous permettre un nouvel incident de sécurité », explique le directeur technique lors de votre briefing matinal. « Votre enquête a révélé que notre précédente configuration de sécurité était insuffisante. Sarah Chen et l'équipe de développement ont besoin d'un environnement parfaitement sécurisé pour terminer le projet Phoenix dans les délais. »
La crise récente a mis en évidence la nécessité de mesures de sécurité robustes. Un nouveau prestataire va rejoindre l'équipe pour accélérer le développement, et vous devez vous assurer que les contrôles d'accès sont configurés avec précision. Vous devrez créer des systèmes de fichiers sécurisés, attribuer une propriété précise, définir des permissions détaillées et mettre en place des espaces de travail collaboratifs qui protègent la propriété intellectuelle de TechNova.
La réussite du projet Phoenix — et l'avenir de l'entreprise — dépendent désormais de la forteresse numérique que vous allez construire aujourd'hui. Sécurisons ce système !
Créer un fichier sécurisé pour un nouveau projet
Votre première tâche consiste à créer un fichier qui contiendra des clés sensibles du projet. Ce fichier doit rester strictement confidentiel et être accessible uniquement à son propriétaire.
Tâches
- Créez un nouveau fichier vide nommé
project_keys.txtdans le répertoire~/project/phoenix_project. - Définissez les permissions de ce fichier afin que seul son propriétaire dispose d'un accès en lecture et en écriture, et que personne d'autre — pas même les utilisateurs du même groupe — n'y ait accès.
Exigences
- Le fichier doit être nommé
project_keys.txt. - Le fichier doit se trouver à l'emplacement
~/project/phoenix_project/project_keys.txt. - Utilisez la commande
chmodavec la notation numérique pour définir les permissions.
Indices
- Vous pouvez créer un fichier vide avec la commande
touch. - Souvenez-vous des valeurs numériques des permissions : lecture (4), écriture (2) et exécution (1).
- La permission finale doit être
600(lecture et écriture pour le propriétaire, aucune permission pour le groupe et les autres).
Exemples
Après avoir terminé cette tâche, vous devriez voir quelque chose comme :
$ ls -l ~/project/phoenix_project/
-rw------- 1 labex labex 0 Sep 3 16:03 project_keys.txt
Les permissions du fichier affichent -rw-------, ce qui signifie :
- Le propriétaire dispose des permissions de lecture et d'écriture
- Le groupe ne dispose d'aucune permission
- Les autres ne disposent d'aucune permission
Attribuer la propriété des ressources du projet
Le projet Phoenix est dirigé par l'équipe de développement de Sarah Chen, dont le responsable technique dev_lead supervise le développement principal. Cet utilisateur appartient au groupe developers, avec lequel vous travaillez depuis le début de la semaine. Vous devez transférer la propriété de tous les fichiers et répertoires du projet afin de garantir un contrôle d'accès approprié.
Tâches
- Modifiez le propriétaire du répertoire
~/project/phoenix_projectet de tout son contenu pour le définir sur l'utilisateurdev_lead. - Modifiez le groupe propriétaire du répertoire
~/project/phoenix_projectet de tout son contenu pour le définir sur le groupedevelopers.
Exigences
- Le propriétaire utilisateur doit être
dev_lead. - Le groupe propriétaire doit être
developers. - Le changement de propriété doit s'appliquer récursivement à tous les fichiers et sous-répertoires de
~/project/phoenix_project. - Vous devez utiliser la commande
chown.
Indices
- La commande
chownpeut modifier simultanément l'utilisateur et le groupe avec la syntaxeuser:group. - Recherchez dans la commande
chownune option permettant d'agir récursivement sur les fichiers et les répertoires. La commandeman chownpeut vous aider. - Les fichiers appartenant actuellement à
root, vous devrez utilisersudopour modifier leur propriété.
Exemples
Après avoir terminé cette tâche, vous devriez voir quelque chose comme :
$ 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
Sécuriser le répertoire principal du projet
Maintenant que la propriété est correcte, vous devez définir les permissions de base du répertoire principal du projet, ~/project/phoenix_project. La règle est la suivante : le propriétaire doit disposer d'un contrôle total, le groupe doit pouvoir lister les fichiers et entrer dans le répertoire, et les utilisateurs extérieurs ne doivent avoir aucun accès.
Tâches
- Définissez les permissions du répertoire
~/project/phoenix_project.
Exigences
- Le propriétaire (
dev_lead) doit disposer des permissions de lecture, d'écriture et d'exécution. - Le groupe (
developers) doit disposer des permissions de lecture et d'exécution. - Les autres ne doivent disposer d'aucune permission.
- Utilisez la commande
chmodpour appliquer ces permissions au répertoire~/project/phoenix_projectlui-même, et non récursivement. - Le répertoire appartenant à
dev_lead, vous devrez peut-être utilisersudopour modifier ses permissions.
Indices
- La permission d'exécution sur un répertoire permet d'y entrer avec
cd. - Calculez la valeur numérique des permissions 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
Après avoir terminé cette tâche, vous devriez voir quelque chose comme :
$ ls -ld ~/project/phoenix_project/
drwxr-x--- 4 dev_lead developers 53 Sep 3 16:00 ~/project/phoenix_project/
Les permissions du répertoire affichent drwxr-x---, ce qui signifie :
- Le propriétaire (
dev_lead) dispose des permissions de lecture, d'écriture et d'exécution - Le groupe (
developers) dispose des permissions de lecture et d'exécution - Les autres ne disposent d'aucune permission
Cela signifie que :
dev_leadpeut accéder entièrement au répertoire- Les membres du groupe
developerspeuvent lister son contenu et y entrer - Les utilisateurs extérieurs n'ont aucun accès au répertoire
Configurer les permissions collaboratives de l'équipe de développement
Remarque : assurez-vous d'avoir terminé l'étape 2, qui définit la propriété de tous les répertoires du projet, y compris
src, surdev_lead:developers. Cette étape s'appuie sur ces paramètres de propriété.Le script de configuration ajoute l'utilisateur
labexau groupedevelopers, mais votre shell actuel peut ne pas prendre automatiquement en compte cette nouvelle appartenance au groupe. Avant de tester l'accès à~/project/phoenix_project/src, exécuteznewgrp developersdans le terminal. Sinon, vous pourriez obtenir des erreursPermission denied, même si la propriété et les permissions sont correctes.
L'équipe de développement doit pouvoir collaborer efficacement dans le répertoire ~/project/phoenix_project/src. Pour faciliter cette collaboration, tout nouveau fichier ou répertoire créé dans src doit automatiquement appartenir au groupe developers. Cette permission spéciale concerne uniquement le groupe propriétaire. Le propriétaire utilisateur restera le compte qui crée le fichier, et les permissions de lecture et d'é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/srcafin que tous les nouveaux fichiers et sous-répertoires créés à l'intérieur héritent du groupe propriétaire du répertoiresrclui-même, à savoirdevelopers.
Exigences
- La solution doit garantir que les nouveaux fichiers de
~/project/phoenix_project/srchéritent automatiquement du groupedevelopers. - Les permissions finales doivent permettre au propriétaire et au groupe
developersde lire, d'écrire et d'entrer dans le répertoiresrc, tandis que les autres ne doivent avoir aucun accès. - Vous devez utiliser la commande
chmodpour définir cette permission spéciale. - Vous devrez peut-être utiliser
sudopour définir les permissions de répertoires appartenant à d'autres utilisateurs.
Indices
- Cette permission spéciale s'appelle le bit « set group ID », ou bit
setgid. - Vous pouvez appliquer le bit
setgidavec la notation symbolique (g+s) ou numérique. - En notation numérique, le bit
setgida la valeur2. Il se place avant les trois chiffres de permissions standard, par exemple2770.
Exemples
Après avoir terminé cette tâche, vous devriez voir quelque chose comme :
$ ls -ld ~/project/phoenix_project/src/
drwxrws--- 2 dev_lead developers 6 Sep 3 16:00 ~/project/phoenix_project/src/
Le s à la position de l'exécution pour le groupe indique que le bit setgid est activé et que le groupe dispose de la permission d'exécution. 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é avec un autre utilisateur. Le propriétaire du fichier reste l'utilisateur qui l'a créé, tandis que le groupe propriétaire est hérité du répertoire src. Cela permet à l'équipe de développement de travailler en collaboration tout en conservant une propriété de groupe appropriée.
Les permissions indiquent :
- Le propriétaire (
dev_lead) dispose des permissions de lecture, d'écriture et d'exécution - Le groupe (
developers) dispose des permissions de lecture, d'écriture et d'exécution - Les autres ne disposent d'aucune permission
- Le
sminuscule à la position de l'exécution pour le groupe indique que le bit setgid est activé et que le groupe dispose de la permission d'exécution
Résumé
Excellent travail, gardien de la forteresse ! Vous avez réussi à bâtir une base de sécurité imprenable pour le projet Phoenix. Le directeur technique et Sarah Chen sont impressionnés par l'ampleur de votre mise en œuvre. Le répertoire du projet est désormais une forteresse qui protégera la propriété intellectuelle de TechNova tout en permettant une collaboration fluide.
Au cours de ce défi, vous avez maîtrisé des compétences essentielles en matière de sécurité Linux :
- Création de fichiers et permissions de base : vous avez sécurisé les clés sensibles du projet grâce à des contrôles précis des permissions.
- Gestion de la propriété : vous avez attribué avec expertise la propriété à l'équipe de développement de Sarah et à sa direction technique.
- Sécurité des répertoires : vous avez trouvé le bon équilibre entre accès et sécurité pour l'infrastructure principale du projet.
- Permissions avancées : vous avez configuré les permissions setgid afin de garantir des espaces de travail collaboratifs avec héritage automatique du groupe propriétaire.
- Espaces de travail collaboratifs : vous avez configuré des espaces de collaboration qui préservent la sécurité tout en favorisant la productivité.
Ces compétences avancées en sécurité prouvent que vous êtes prêt à assumer des responsabilités de niveau senior en administration système. Demain, vous relèverez votre dernier défi en tant que gardien des clés : vous gérerez l'aspect humain de la sécurité du projet Phoenix en contrôlant l'accès des utilisateurs au système !



