Permissions avancées, ACL et bits spéciaux
rwx ne suffit plus dès qu'on partage : « le groupe dev lit, Marie écrit, les autres rien » ne tient pas en 3 triplets.
Prérequis : cours précédent ; utilisateurs et services.
Pourquoi
rwx ne suffit plus dès qu'on partage : « le groupe dev lit, Marie écrit, les autres rien » ne tient pas en 3 triplets. ACL = permissions par utilisateur/groupe nommé. Et setuid/sticky évitent des catastrophes connues.
Concepts
- ACL (
setfacl/getfacl) :setfacl -m u:marie:rw rapport.pdf— fin, par nommé.getfaclpour auditer (le+dansls -lsignale des ACL !). - setuid/setgid (
chmod u+s,4xxx/2xxx) : exécuter avec les droits du PROPRIÉTAIRE/groupe (ex.passwdqui écrit/etc/shadow). Puissant = dangereux : auditer (find / -perm -4000). - sticky bit (
chmod +t,1xxx) : sur dossier partagé (/tmp) : on ne supprime que SES fichiers. Sans lui : n'importe qui efface tout. - umask : le masque à la création (022 → fichiers 644, dossiers 755). Fichiers « trop ouverts » à la création = umask à revoir (027 en sensible).
Exemple : partage propre
setfacl -m g:dev:rwx -m d:g:dev:rwx /srv/partage # d: = défaut (héritage futurs fichiers)
getfacl /srv/partage
find / -xdev -perm -4000 2>/dev/null # setuid existants : chacun justifié ?
Cas réel
Dossier projet en 777 « pour que tout le monde bosse » : un stagiaire rm -rf le travail d'autrui (légal avec 777 !). Groupe + ACL + sticky : chacun ses fichiers, suppression des siens seuls.
Pièges
cpsans--preserve: perd les ACL (recréer aveccp -aoursync -A).- setuid sur script shell : ignoré par le noyau (heureusement) — setuid = binaires compilés audités uniquement.
- umask 000 « pour simplifier » : tout créé en 777/666. 022 standard, 027 sensible, 077 secrets.
À retenir
ACL pour le fin (auditer le +), setuid audité, sticky sur partagés, umask selon sensibilité.
Pas de correction en ligneConfrontez votre code aux résultats attendus du cours.