On considère que le serveur a accès aux sources de la distribution. L’exemple est donné pour une base de mise à jour via rpm, mais peut facilement être transposé à d’autres systèmes.
La configuration proposée (ou les tests) correspondent à un serveur qui se connecte à un serveur samba, et utilise les groupes de ce serveur pour la gestion des droits.
Installer les ACL
Installation des ACL
urpmi acl
vi /etc/fstab
Pour que la partition /opt accepte les acl :
/dev/lvmsvburo/5 /opt ext3 acl 1 2
NB : lvmsvburo est un exemple.
reboot
NB : reboot pour prise en compte des acl. On peut également démonter la partition, puis la remonter...
NB : Ce test ne peut se faire que si le service Samba est initialisé.
cd /opt
md essai
setfacl –m g:msi:rwx essai
getfacl essai
rd essai
Positionner des ACL sur un dossier
setfacl -R -m g:"mon groupe":rwx /opt/mondossier
setfacl -R -m d:g:"mon groupe":rwx /opt/mondossier
La première ligne va permettre de positionner dans toute l’arborescence /opt/mondossier (option -R) les droits rwx au groupe "mon groupe", qui doit exister sur le système (soit via Samba, soit en groupe natif Linux).
La seconde va positionner les droits par défaut (d :) : à chaque création d’un nouveau dossier ou d’un nouveau fichier, les droits par défaut seront positionnés.
Cette distinction permet de gérer des arborescences complexes, avec des droits sur un dossier qui peuvent être différents des droits par défaut. Par exemple :
setfacl -m g:toto:rx essai
setfacl -m g:titi:rx essai
setfacl -m d:g:titi:rwx essai
setfacl -m g:tutu:rwx essai
setfacl -m d:g:tutu:rwx essai
Le groupe toto peut lire le dossier essai, et uniquement celui-ci
Le groupe tutu peut lire et écrire dans le dossier essai, mais aussi dans les sous-dossiers qui seront créés par la suite
Le groupe titi peut lire dans le dossier titi, et écrire dans tous les sous-dossiers créés par les personnes du groupe tutu
La sécurité peut être mise à mal
Sur un serveur relié à un domaine Windows (via samba), les utilisateurs vont avoir, en général, comme groupe par défaut le groupe "Utilisa. du domaine".
Si un utilisateur crée un fichier, celui-ci va être de la forme suivante :
-rw-rwx---+ 1 eric.quinton Utilisa. du domaine 0 mai 20 16:42 essai
getfacl essai
# file: essai
# owner: eric.quinton
# group: Utilisa.\040du\040domaine
user::rw-
group::rwx
group:MSI:rwx
mask::rwx
other::---
Tout utiilsateur appartenant au groupe ’Utilisa. du domaine’ va pouvoir le modifier, si on a laissé les droits par défaut ou si on a juste créé des acls complémentaires (commandes setfacl précédentes), même si l’utilisateur ne fait pas partie des droits attribués via les acls...
Pour éviter ce trou de sécurité, il faut supprimer les droits par défaut sur le groupe par défaut ! La solution est assez simple :
setfacl -R -m g::- /opt
setfacl -R -m d:g::- /opt
La lettre g permet d’indiquer qu’on travaille sur un groupe, le nom du groupe laissé à vide permet d’indiquer que l’on s’intéresse au groupe par défaut. Pour supprimer les droits, il faut utiliser le caractère -, sinon le système ne prend pas en compte la demande.