Permissions experts
umask, sécurité fine
Comprendre umask
La commande umask définit les permissions par défaut soustraites des permissions maximales lors de la création de nouveaux fichiers (666) ou dossiers (777).
Par exemple, umask 022 donne 644 pour les fichiers et 755 pour les dossiers.
Créez un fichier pour observer les droits par défaut.
Créez un dossier.
Expliquez le calcul : umask soustrait les bits (ex. : 666 - 022 = 644).
📌 💡 Solution
Modifiez temporairement umask et testez.
Mission n°1 : Calcul de umask pour fichiers
🧠 Rappel
Pour les fichiers, permissions maximales sont 666 (pas d'exécution par défaut). umask soustrait pour définir les droits initiaux.
Étape 1
Rappelez les permissions max pour fichiers : 666.
📌 💡 Solution
Étape 2
Appliquez umask 007 et créez un fichier.
Étape 3
Vérifiez les droits : doit être 660 (rw-rw----).
Étape 4
Expliquez pourquoi : 666 - 007 = 660 (soustraction : 6-0=6, 6-0=6, 6-7=0 → mais umask est octal, soustrait bit par bit).
📌 💡 Solution
Étape 5
Testez l'accès avec un autre utilisateur (doit échouer pour titi si pas dans groupe).
Mission n°2 : umask pour les dossiers
🧠 Rappel
Pour les dossiers, max 777 (rwx-rwx-rwx). umask 007 donne 770 (rwx-rwx---).
Étape 1
Avec umask 007, créez un dossier.
Étape 2
Vérifiez les droits : 770.
Étape 3
Comparez avec un fichier créé sous le même umask.
Étape 4
Testez l'accès au dossier avec titi (si même groupe, OK ; sinon, denied).
Étape 5
Modifiez les droits du dossier si nécessaire pour test.
Mission n°3 : Rendre umask persistant
🧠 Rappel
Pour appliquer umask à chaque session, ajoutez-le dans ~/.bashrc ou /etc/profile pour global.
Étape 1
Modifiez ~/.bashrc pour inclure umask 007.
Étape 2
Relancez le terminal ou sourcez le fichier.
Étape 3
Vérifiez la persistance en créant un nouveau fichier.
Étape 4
Testez dans une nouvelle session (su - toto).
Étape 5
Pour global, éditez /etc/profile (avec sudo).
Mission n°4 : Appliquer umask à un groupe de travail
🧠 Rappel
Pour un groupe, assurez-vous que umask force les fichiers à 660/770 pour partage groupe sans accès autres.
Étape 1
Créez un groupe groupe_travail et ajoutez toto et titi.
Étape 2
Appliquez umask 007 à chaque utilisateur via leurs .bashrc.
Étape 3
Créez un dossier commun /srv/travail avec SGID.
Étape 4
Reconnectez toto et créez un fichier : doit être 660, groupe groupe_travail.
Étape 5
Vérifiez avec titi : accès OK.
Mission n°5 : Sécuriser un dossier partagé avec umask
🧠 Rappel
Combinez umask 007 + SGID pour que tous les nouveaux fichiers/dossiers soient automatiquement 660/770 avec bon groupe.
Étape 1
Appliquez SGID sur /srv/partage (si pas déjà).
Étape 2
Assurez umask 007 pour l'utilisateur.
Étape 3
Créez un fichier : vérifiez 660 et groupe.
Étape 4
Vérifiez les droits.
📌 💡 Solution
Étape 5
Tentez l'accès avec un utilisateur externe (créez un tutu si besoin).
Mission n°6 : Résolution de problèmes avec umask
🧠 Rappel
Un umask trop restrictif comme 077 rend les fichiers privés (600), bloquant le partage.
Étape 1
Appliquez umask 077 et créez un fichier.
Étape 2
Vérifiez que personne d’autre n’y accède (test avec titi).
Étape 3
Modifiez à umask 007.
Étape 4
Retestez l’accès avec titi (si même groupe, OK).
Étape 5
Documentez la différence.
Mission n°7 : Cas pratique – Partage privé pour projet
🧠 Rappel
Pour un projet sensible, combinez groupe, SGID, Sticky, umask pour contrôle fin.
Étape 1
Créez /srv/projetX et groupe projetx.
Étape 2
Créez l'utilisateur tutu, puis ajoutez les 3 utilisateurs (toto, titi, et tutu) dans le groupe groupe_travail.
Étape 3
Appliquez SGID + Sticky.
Étape 4
Appliquez umask 007 dans .bashrc pour les 3.
Étape 5
Testez : créez fichier avec toto, accédez avec titi, supprimez refusé.
Mission n°8 : Bonnes pratiques de sécurité
🧠 Rappel
- Évitez 777 : risque total.
- Utilisez groupes pour partage.
- SGID pour héritage.
- Sticky pour anti-suppression.
- umask pour defaults sécurisés.
Étape 1
Évitez chmod 777 : simulez et corrigez.
Étape 2
Toujours utiliser un groupe : vérifiez.
Étape 3
Appliquez SGID si manquant.
Étape 4
Appliquez Sticky si nécessaire.
Étape 5
Utilisez umask : vérifiez.