Administration (fédération)
Gère les documents officiels, les budgets, les politiques. Accès total à l’ensemble de la plateforme.
La Fédération des astronomes amateurs du Québec (FAAQ) regroupe une quinzaine de clubs à travers la province. Elle veut mettre en place une plateforme Linux pour organiser ses documents — comptes rendus d’observation, calendriers, budgets, politiques internes.
Trois types d’utilisateurs doivent avoir des accès différents :
Administration (fédération)
Gère les documents officiels, les budgets, les politiques. Accès total à l’ensemble de la plateforme.
Clubs locaux
Chaque club (Montréal, Québec, Sherbrooke…) a son propre espace de travail. Les membres d’un club peuvent y écrire. Les autres clubs n’y ont pas accès.
Membres individuels
Chaque membre a un dossier personnel privé. Tous les membres peuvent consulter la zone publique de la fédération (calendrier, événements).
Ton mandat : configurer les utilisateurs, les groupes et les permissions pour que ce modèle à trois niveaux fonctionne correctement.
Tu vas créer un fichier et lui appliquer plusieurs permissions, en notation symbolique puis octale.
Crée un fichier test_permissions.txt dans ton dossier personnel avec du contenu quelconque.
Vérifie ses permissions initiales avec ls -l.
Utilise la notation symbolique pour :
Vérifie le résultat après chaque opération.
Réinitialise ensuite le fichier à rw-r--r-- en utilisant la notation octale.
# 1. Créer le fichierecho "Test de permissions FAAQ" > ~/test_permissions.txt
# 2. Vérifier l'état initialls -l ~/test_permissions.txt# -rw-r--r-- 1 toi toi 23 jan 15 10:30 test_permissions.txt
# 3a. Ajouter exécution pour le propriétairechmod u+x ~/test_permissions.txtls -l ~/test_permissions.txt# -rwxr--r--
# 3b. Retirer la lecture pour les autreschmod o-r ~/test_permissions.txtls -l ~/test_permissions.txt# -rwxr-----
# 3c. Donner l'écriture au groupechmod g+w ~/test_permissions.txtls -l ~/test_permissions.txt# -rwxrw----
# 5. Réinitialiser en octalchmod 644 ~/test_permissions.txtls -l ~/test_permissions.txt# -rw-r--r--Tu dois maintenant créer les comptes pour les différents rôles de la plateforme FAAQ.
Utilisateurs à créer :
| Utilisateur | Rôle |
|---|---|
fed_admin | Administrateur de la fédération |
alice | Membre du club de Montréal |
bob | Membre du club de Montréal |
carol | Membre du club de Québec |
Groupes à créer :
| Groupe | Contient |
|---|---|
faaq_admin | Les administrateurs de la fédération |
faaq_membres | Tous les membres de la FAAQ |
club_mtl | Les membres du club de Montréal |
club_qc | Les membres du club de Québec |
Appartenances attendues :
fed_admin → faaq_admin, faaq_membresalice → club_mtl, faaq_membresbob → club_mtl, faaq_membrescarol → club_qc, faaq_membresCrée les quatre utilisateurs avec adduser. Choisis un mot de passe simple (tu en auras besoin pour su).
Crée les quatre groupes avec addgroup.
Ajoute chaque utilisateur à ses groupes secondaires avec usermod -aG.
Vérifie les appartenances avec la commande groups <utilisateur>.
# 1. Créer les utilisateurssudo adduser fed_adminsudo adduser alicesudo adduser bobsudo adduser carol
# 2. Créer les groupessudo addgroup faaq_adminsudo addgroup faaq_membressudo addgroup club_mtlsudo addgroup club_qc
# 3. Ajouter aux groupes secondaires (attention au -a!)sudo usermod -aG faaq_admin,faaq_membres fed_adminsudo usermod -aG club_mtl,faaq_membres alicesudo usermod -aG club_mtl,faaq_membres bobsudo usermod -aG club_qc,faaq_membres carol
# 4. Vérifiergroups fed_admin# fed_admin : fed_admin faaq_admin faaq_membres
groups alice# alice : alice club_mtl faaq_membres
getent group faaq_membres# faaq_membres:x:1005:fed_admin,alice,bob,carol
getent group club_mtl# club_mtl:x:1006:alice,bobCrée la hiérarchie suivante sous /faaq :
/faaq/├── admin/ (zone administration, privée)├── public/ (lisible par tous les membres)├── clubs/│ ├── montreal/ (privé au club de Montréal)│ └── quebec/ (privé au club de Québec)└── membres/ ├── alice/ ├── bob/ └── carol/Crée tous les répertoires en une seule commande avec mkdir -p.
Crée quelques fichiers de démonstration dans chaque zone (par exemple /faaq/admin/budget.txt, /faaq/public/calendrier.md).
Vérifie la structure avec ls -R /faaq ou tree /faaq (si tree est installé).
# 1. Créer la structure complètesudo mkdir -p /faaq/{admin,public,clubs/{montreal,quebec},membres/{alice,bob,carol}}
# 2. Ajouter du contenu de démonstrationsudo bash -c 'echo "Budget 2025 - confidentiel" > /faaq/admin/budget.txt'sudo bash -c 'echo "Politique de confidentialité" > /faaq/admin/politique.md'sudo bash -c 'echo "Calendrier des observations publiques" > /faaq/public/calendrier.md'sudo bash -c 'echo "Liste des événements" > /faaq/public/evenements.md'
# 3. Vérifierls -R /faaqC’est l’exercice central. Tu dois configurer les propriétaires, les groupes et les permissions de chaque répertoire pour respecter les règles d’accès.
Règles à implémenter :
| Chemin | Propriétaire | Groupe | Règle d’accès |
|---|---|---|---|
/faaq | root | faaq_membres | Seuls les membres peuvent entrer |
/faaq/admin | fed_admin | faaq_admin | Admin uniquement, lecture + écriture pour le groupe |
/faaq/public | fed_admin | faaq_membres | Tous les membres lisent, seul l’admin modifie |
/faaq/clubs | root | faaq_membres | Traversable par tous les membres |
/faaq/clubs/montreal | fed_admin | club_mtl | Seuls les membres du club de Montréal |
/faaq/clubs/quebec | fed_admin | club_qc | Seuls les membres du club de Québec |
/faaq/membres | root | faaq_membres | Traversable par tous les membres |
/faaq/membres/alice | alice | alice | Strictement privé |
/faaq/membres/bob | bob | bob | Strictement privé |
/faaq/membres/carol | carol | carol | Strictement privé |
Utilise chown pour définir les propriétaires et groupes.
Applique les permissions avec chmod (en octal).
Vérifie chaque répertoire avec ls -ld.
# 1. Propriétaires et groupessudo chown root:faaq_membres /faaqsudo chown -R fed_admin:faaq_admin /faaq/adminsudo chown -R fed_admin:faaq_membres /faaq/publicsudo chown root:faaq_membres /faaq/clubssudo chown fed_admin:club_mtl /faaq/clubs/montrealsudo chown fed_admin:club_qc /faaq/clubs/quebecsudo chown root:faaq_membres /faaq/membressudo chown alice:alice /faaq/membres/alicesudo chown bob:bob /faaq/membres/bobsudo chown carol:carol /faaq/membres/carol
# 2. Permissionssudo chmod 750 /faaq # rwxr-x--- membres seulementsudo chmod 770 /faaq/admin # rwxrwx--- admin + groupe écriventsudo chmod 660 /faaq/admin/* # rw-rw---- fichiers adminsudo chmod 755 /faaq/public # rwxr-xr-xsudo chmod 644 /faaq/public/* # rw-r--r--sudo chmod 755 /faaq/clubs # traversablesudo chmod 770 /faaq/clubs/montreal # rwxrwx--- club seulementsudo chmod 770 /faaq/clubs/quebec # rwxrwx---sudo chmod 755 /faaq/membres # traversablesudo chmod 700 /faaq/membres/alice # privésudo chmod 700 /faaq/membres/bobsudo chmod 700 /faaq/membres/carol
# 3. Vérificationls -ld /faaq /faaq/*/ /faaq/clubs/*/ /faaq/membres/*/Les permissions sont en place. Il faut maintenant valider qu’elles fonctionnent comme prévu. Pour chaque utilisateur, tu vas vérifier ce qu’il peut et ne peut pas faire.
Utilise su - <utilisateur> pour changer d’identité. N’oublie pas le tiret — il charge l’environnement complet.
Tests à effectuer pour chaque utilisateur :
su - fed_admin
# Accès admincat /faaq/admin/budget.txt # ✅ doit fonctionnerecho "Note" >> /faaq/admin/notes.txt # ✅ doit fonctionner
# Accès publiccat /faaq/public/calendrier.md # ✅ doit fonctionnerecho "Nouvel événement" >> /faaq/public/evenements.md # ✅ doit fonctionner
# Accès clubs (fed_admin possède les dossiers mais n'est pas dans les groupes de club)ls /faaq/clubs/montreal # ✅ propriétaire du dossierecho "test" > /faaq/clubs/montreal/admin.txt # ✅
exitsu - alice
# Accès admin (INTERDIT)cat /faaq/admin/budget.txt # ❌ Permission deniedls /faaq/admin # ❌ Permission denied
# Accès public (lecture seule)cat /faaq/public/calendrier.md # ✅echo "hack" >> /faaq/public/evenements.md # ❌ Permission denied
# Club Montréal (écriture autorisée)cd /faaq/clubs/montreal # ✅echo "Observation de Jupiter" > obs-alice.txt # ✅
# Club Québec (INTERDIT)ls /faaq/clubs/quebec # ❌ Permission denied
# Dossier personnelecho "Mes notes" > /faaq/membres/alice/notes.txt # ✅
# Dossier d'un autre membre (INTERDIT)ls /faaq/membres/bob # ❌ Permission denied
exitsu - carol
# Accès publiccat /faaq/public/calendrier.md # ✅
# Club Québec (autorisé)echo "Réunion du club" > /faaq/clubs/quebec/reunion.txt # ✅
# Club Montréal (INTERDIT — carol n'est pas membre)ls /faaq/clubs/montreal # ❌ Permission deniedcd /faaq/clubs/montreal # ❌ Permission denied
exit