Table of Contents
Translate this page
Access Control List
Points techniques
Fichiers
Les ACL sous VHFFS sont implantées via le fichier vhffs-api/src/Vhffs/Acl.pm
.
Base de données
Elles sont enregistrées au sein de la table vhffs_acl
, sa structure est la suivante :
vhffs=> \d vhffs_acl Table «public.vhffs_acl» Colonne | Type | Modificateurs ---------+---------+------------------------------------------------------------ acl_id | integer | not null default nextval('vhffs_acl_acl_id_seq'::regclass) oid_src | integer | perm | integer | not null oid_dst | integer | Index : «vhffs_acl_pkey» PRIMARY KEY, btree (acl_id) Contraintes de clés secondaires : «fk_vhffs_acl_vhffs_object_dst» FOREIGN KEY (oid_dst) REFERENCES vhffs_object(object_id) ON DELETE CASCADE «fk_vhffs_acl_vhffs_object_src» FOREIGN KEY (oid_src) REFERENCES vhffs_object(object_id) ON DELETE CASCADE
L'identifiant de l'ACL semble relativement inutile. oid_src
référence l'identifiant d'un objet utilisateur ou groupe, oid_dst
est l'objet auquel est appliqué l'ACL. Enfin, perm
est un entier symbolisant le niveau de permission, un niveau donné inclut tous les niveaux inférieurs (le niveau 4 implique les niveaux 1, 2 et 3).
Constantes
Elles sont définies dans vhffs-api/src/Vhffs/Constants.pm
et commencent par ACL_
:
ACL_DENIED => 0, # Accès refusé ACL_VIEW => 2, # Peut voir le service ACL_MODIFY => 4, # Peut modifier le service ACL_CREATEACL => 6, # Peut ajouter des autorisations ACL_MANAGEACL => 8, # Peut modifier les autorisations ACL_DELETE => 10 # Peut supprimer le service
Gestion des ACL
Création d'une ACL
À chaque création d'un service (site web, serveur SVN, …) une nouvelle entrée est ajoutée pour l'user avec le niveau de permissions maximal.
L'ajout d'une ACL après coup se fait via la fonction add_acl($user|$groupe, $objet auquel on donne accès, $permission, $main)
.
Suppression d'une ACL
La suppression d'une ACL se fait via la fonction del_acl($user|$groupe, $objet auquel on supprime l'accès, $main)
.
Note : la méthode del_acl vérifie qu'il reste au moins une personne en mesure de gérer les ACLs après la suppression, si ce n'est pas le cas, la suppression échoue.