Introduction
Bienvenue au Jour 4 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.txtdans 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 d'accès.
Exigences
- Le fichier doit être nommé
project_keys.txt. - Le fichier doit être situé dans
~/project/phoenix_project/project_keys.txt. - Utilisez la commande
chmodavec 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
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-------, indiquant :
- Le propriétaire a les permissions de lecture et d'écriture
- Le groupe n'a aucune permission
- Les autres n'ont aucune permission
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 travaillez 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_projectet de tout son contenu pour l'utilisateurdev_lead. - Changez le groupe propriétaire du répertoire
~/project/phoenix_projectet de tout son contenu pour 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 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
chownpeut changer à la fois l'utilisateur et le groupe en même temps en utilisant la syntaxeuser:group. - Cherchez une option dans la commande
chownqui lui permet d'opérer sur les fichiers et les répertoires de manière récursive. La commandeman chownest votre alliée. - Étant donné que les fichiers appartiennent actuellement à root, vous devrez utiliser
sudopour changer la 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é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
chmodpour appliquer ces permissions au répertoire~/project/phoenix_projectlui-même (pas de manière récursive). - Comme le répertoire appartient à
dev_lead, vous devrez peut-être utilisersudopour 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
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---, indiquant :
- 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_leadpeut accéder pleinement au répertoire- Les membres du groupe
developerspeuvent lister le contenu et entrer dans le répertoire - Les personnes extérieures n'ont aucun accès au répertoire
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) surdev_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/srcqui force tous les nouveaux fichiers et sous-répertoires créés en son sein à hériter de la propriété de groupe du répertoiresrclui-même (qui estdevelopers).
Exigences
- La solution doit garantir que les nouveaux fichiers dans
~/project/phoenix_project/srchéritent automatiquement du groupedevelopers. - Vous devez utiliser la commande
chmodpour définir cette permission spéciale. - Vous devrez peut-être utiliser
sudopour 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
setgiden utilisant la notation symbolique (g+s) ou numérique. - En notation numérique, le bit
setgida une valeur de2. Il est placé avant les trois chiffres de permission standard (par exemple,2770).
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 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 montrent :
- 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
sminuscule 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
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é de manière experte 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 assurer 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 !



