Appearance
🔐 Exercices - Gestion des Permissions Linux
🏃♂️ Exercice 1 - Permissions de Base
Préparation
bash
# Créer la structure
mkdir -p projet/{src,docs,config,logs}
cd projet
# Créer les fichiers
touch src/main.py src/utils.py
touch docs/README.md docs/manuel.pdf
touch config/database.conf config/secrets.key
touch logs/app.log logs/error.logQuestions
- 1.1 Affichez les permissions de tous les fichiers dans le répertoire
projet(récursivement).
bash
ls -laR- 1.2 Le fichier
src/main.pydoit être exécutable par le propriétaire seulement. Modifiez ses permissions.
bash
chmod 700 src/main.py- 1.3 Les fichiers de documentation (
docs/) doivent être lisibles par tous, mais modifiables seulement par le propriétaire. Appliquez ces permissions.
bash
chmod 644 docs/*
# ou
chmod -R 644 docs- 1.4 Le fichier
config/secrets.keycontient des mots de passe. Il ne doit être accessible qu'au propriétaire (lecture/écriture seulement). Configurez-le.
bash
chmod 600 config/secrets.key- 1.5 Les fichiers de logs doivent être accessibles en écriture par le propriétaire et le groupe, mais lisibles par tous. Appliquez ces permissions.
bash
chmod 664 logs/*- 1.6 Vérifiez que toutes les permissions sont correctes en utilisant
ls -la.
🏢 Exercice 2 - Gestion d'une Équipe
Contexte
Vous gérez une équipe de développeurs avec différents niveaux d'accès aux fichiers du projet.
Créer les utilisateurs avec useradd
- Aminata (aminata)
- Nina (nina)
- Sacha (sacha)
bash
sudo useradd -m aminata
sudo useradd -m nina
sudo useradd -m sachaCréer un groupe developpeurs et ajouter les 3 utilisateurs
bash
sudo groupadd developpeurs
sudo usermod -aG developpeurs aminata
sudo usermod -aG developpeurs nina
sudo usermod -aG developpeurs sachaPréparation
bash
# Créer les dossiers
mkdir -p equipe/{aminata,nina,sacha}
cd equipe
# Créer les fichiers
touch aminata/code_personnel.py
touch nina/rapport_bug.txt
touch sacha/tests.sh
touch projet_commun.mdQuestions
- 2.1 Changez le propriétaire du fichier
projet_commun.mdpour qu'il appartienne àaminata.
bash
sudo chown aminata projet_commun.md- 2.2 Assignez
projet_commun.mdau groupedeveloppeurs.
bash
sudo chgrp developpeurs projet_commun.md- 2.3 Le fichier
sacha/tests.shdoit être exécutable. Modifiez ses permissions en utilisant la notation octale.
bash
chmod 755 sacha/tests.sh- 2.4 Aminata veut que son
code_personnel.pysoit :- Lecture/écriture pour elle
- Lecture seulement pour le groupe
- Aucun accès pour les autres
- Utilisez la notation symbolique.
bash
chmod u=rw,g=r,o= aminata/code_personnel.py- 2.5 Nina souhaite que son
rapport_bug.txtsoit modifiable par tous les membres du groupedeveloppeursmais pas par les autres utilisateurs.
bash
chmod 660 nina/rapport_bug.txt
# ou
chmod g+w,o-rwx nina/rapport_bug.txt- 2.6 Le répertoire
equipedoit avoir le groupedeveloppeurset permettre aux membres du groupe de lire et d'exécuter les fichiers, mais pas de les modifier.
bash
sudo chown :developpeurs equipe
chmod 750 equipe
# ou
chmod g+rx,o-rwx equipeSUID, SGID et Sticky Bit
- 2.7 Le script
sacha/tests.shdoit être exécuté avec les permissions de son propriétaire, même si un autre utilisateur l'exécute. Appliquez le bit SUID.
bash
chmod u+s sacha/tests.sh- 2.8 Le répertoire
equipedoit permettre aux membres du groupe de créer des fichiers, mais pas de supprimer les fichiers des autres membres. Appliquez le sticky bit.
bash
chmod +t equipe- 2.9 Ajouter le bit SGID au répertoire
equipepour que tous les fichiers créés dans ce répertoire héritent du groupedeveloppeurs.
bash
chmod g+s equipe