Table des matières

version-1-6 version-8-08

Les ACLs et HackD

Présentation

Les permissions et les partages de fichiers sur AbulÉdu 1.6 sont implémentés grâce une fonctionnalité puissante des derniers noyaux et systèmes de fichiers Linux appelée « les ACLs » (Access Control List, ou Listes de Contrôles d'Accès). Ces ACLs permettent d'étendre le système de permissions sur les fichiers (auparavant limité à “utilisateur propriétaire”, “groupe” et “tous les autres”) : grâce à eux il est possible de fixer des permissions spécifiques pour autant de groupes ou de comptes utilisateurs dont on a besoin.

Le système des ACLs permet aussi l'héritage de permissions : on supersède la notion de umask (définie pour chaque utilisateur, mais indépendante du chemin où il travaille), et l'on peut définir des permissions différentes qui se propagent (ou pas) dans des sous-répertoires indépendament de l'utilisateur qui manipule les fichiers.

Problèmes sous-jacents

HackD : Horizon Auto Check Daemon

C'est pour répondre à tous ces problèmes que HackD a été créé. Ce démon surveille tous les répertoires de groupes à l'affut du moindre changement. Lorsqu'un évènement qui l'intéresse survient (dans un contexte précis), par exemple l'apparition d'un fichier ou d'un répertoire, le démon applique aussitôt les permissions (sous forme d'ACLs) nécessaires au partage effectif du fichier ou répertoire (en respect de la notion de permissivité).

HackD est très léger en ressources système : pendant un rsync sur plusieurs centaines de méga de données, il reste en dessous de 0.1% d'utilisation de l'UC. Ceci est possible grâce à l'utilisation d'une autre technologie récente : inotify. Pour surveiller les répertoires partagés, HackD demande simplement au noyau de l'informer de tout changement qui survient à l'intérieur de ces répertoires. Comme le noyau est un passage obligé dans ces cas-là, HackD est prévenu instantanément et agit tellement vite que l'utilisateur ne le remarque même pas. Le service est ainsi rendu : les bonnes permissions sont appliquées tellement vite que pour un humain c'est instantané.