ACL : Implémentation des droits de type NT sur Linux

From Deimos.fr / Bloc Notes Informatique
Jump to: navigation, search

Une ACL, ou Access Control List (en anglais : « liste de contrôle d'accès ») est, pour définir simplement la notion, une liste de permissions sur un fichier, un répertoire ou une arborescence, ajoutée aux permissions « classiques » (c'est-à-dire, techniquement, les permissions POSIX.1) de ce fichier. Ces permissions concernent des utilisateurs et/ou des groupes définis. La gestion des ACL sous GNU/Linux s'inspire de la norme POSIX 1003.1e (projet 17) mais ne la respecte pas entièrement.

Au moyen des ACL, on peut étendre le nombre d'utilisateurs et de groupes ayant des droits sur un même fichier. Rappelons que, dans le monde UNIX, chaque fichier ne peut normalement indiquer des permissions que pour un seul utilisateur et un seul groupe, qui s'opposent à une unique catégorie correspondant à « tous les autres » (ou « le reste du monde »). Avec les ACL, on peut (entre autres) ajouter à un fichier d'autres utilisateurs et groupes et définir leurs droits séparément. On se rapproche ainsi du système de permissions pratiqué sur les plate-formes NT (de nombreuses différences subsistent, cependant).

Les ACL sont très utiles (voire indispensables) dans des environnements informatiques axés sur le travail collaboratif et mutualisé ; de même, leur utilisation avec SAMBA permet d'en étendre les capacités.

Toute fois attention à ne pas confondre ! Les ACL Unix ne sont pas identiques à celles d'NT (Microsoft). En effet, il y a des variantes, par exemple, seul le propriétaire d'un fichier pourra modifier le propriétaire de ce fichier. Même si d'autres utilisateurs ont tous les droits sur ce fichier.

Si suite à celà, vous souhaitez mettre en place un serveur samba et l'utiliser comme sous Windows avec les ACL, il y a une petite différence de fonctionnement :

  • Sous samba, Les ACLs sont modifiables par le propriétaire de l'objet, les membres du groupe propriétaire de l'objet ou l'administrateur du share
  • Sous linux, les ACLs sont modifiable par le propriétaire de l'objet ou root (pour simplifier)

Voici donc quelques petites documentations :

Documentation sur les ACL de type NT
ACL et EA sous Linux

Commandes utiles

Copier les droits d'un fichier vers un autre :

Command
getfacl <file-with-acl> | setfacl -f - <file-with-no-acl>