Les ACL UFS

De Diablotins.org.


Les ACL UFS
Image:brush.png

UFS est le système de fichier livré en standard de FreeBSD, il est actuellement en version 2 sur la branche 5 et intègre le mécanisme de journalisation Softupdates ainsi qu'une gestion plus fine des droits d'accès aux fichiers, conforme à la norme POSIX : ACL.

Attention : cette astuces n'est valable que pour la branche 5 de FreeBSD.




Présentation

Les ACL, au même titre qu'une des autres innovations de la branche 5, “MAC” (Mandatory Access Control), est conforme à la norme POSIX.
Ce mécanisme offrent une granularité plus importante sur l'accession à une ressource du système de fichier, que ne le permet le système historique;
on peut par exemple donner des crédits particulier à un ou plusieurs utilisateurs, - soit un ensemble d'utilisateurs -, sans avoir à multiplier les groupes d'utilisateurs.

Configuration

Ce mécanisme est intégré au noyau et au noyau “GENERIC” depuis les dernières branches.
Toutefois, vérifiez que l'option est bien présente dans votre noyau:

  [...]
  options UFS_ACL
  [...]

Modifez /etc/fstab pour autoriser les ACLs sur vos partitions, en précisant sur leur entrée l'option «acls»:

  [...] 
   / /dev/ad0s1a / ufs rw,acls 1 1
  [...]

Redémarrer votre machine et vérifiez que les ACLs sont validées sur vos partitions:

  # mount
  / /dev/ad0s1a on / (ufs, local, acls)

Manipuler

Deux outils vont vous permettre d'utiliser le mécanisme des ACL, setfacl(1) et getfacl(1).

  • Modifier les crédits:
setfacl -m <sequence> <fichier> ajout/modifie une entrée
setfacl -x <sequence> <fichier> supprime une entrée
setfacl -M fichier1 fichier2    copie les entrées
setfacl -d <-m ...>             séquence par défaut, sur un répertoire

La séquence définit des utilisateurs ( u ) et/ou des groupes ( g ) associés à des crédits, ( read,write, execute ):

-m u:david:rwx        l'utilisateur david a tous les crédits
-g:wheel:r-x         le groupe wheel a le droit de lire et d'éxécuter.
-m u::rwx             sans précision, il s'agit de l'utilisateur propriétaire du fichier
-m g::r--             sans précision, il s'agit du groupe propriétaire du fichier
  • Contrôler:
getfacl fichier
rapidement avec ls
  $ ls -al titi
  -rwxrw-r--+ 1 root users 0 Aug 5 12:09 titi
Notez qu'un fichier associé à des crédits ACLs précise le symbole «+» à la suite des crédits classiques.

Exemples,
dans l'espace de nolwenn, du groupe kde, actuellement propriétaire de tous les fichiers:

  $ touch titi
  $ touch tutu
  $ setfacl -m u::rwx,g:mail:rw titi

Donne tous les crédits au propriétaire du fichier et des crédits de lecture et d'écriture aux membres du groupe «mail».

  $ setfacl -M titi tutu
  $ getfacl titi | setfacl -b -n -M - tutu

copie les crédits ACLs de «titi» sur «tutu».

  $ setfacl -x g:mail:rw tutu

Supprime tout crédit de lecture et d'écriture aux membres du groupe «mail» sur «tutu».

  $ getfacl titi
  #file:titi
  #owner:nolwenn
  #group:kde
  user::rwx
  group::r--
  group:mail:rw-
  mask::rw-
  other::r--
  $ getfacl tutu
  #file:tutu
  #owner:nolwenn
  #group:kde
  user::rwx
  group::r--
  mask::rw-
  other::r--
  $ setfacl -bn titi
  $ setfacl -bn tutu

...supprime toutes les crédits ACLs.

Jusqu'ici, aucun avantage au système historique n'est apparent, mais:

  $ setfacl -m u:david:rwx titi

puis:

  $ getfacl -q titi
  user::rwx
  user:david:rwx
  group::r-
  group:mail:rw-
  mask::rw-
  other::r--

Désormais, un autre utilisateur,«david», qui n'est pas membre du groupe de nolwenn, kde, a les crédits d'écritures sur le fichier.

  $ setfacl -m g:cdrom:rwx titi
  $ getfacl -q titi
  user::rwx
  user:david:rwx
  group::r-
  group:mail:rw-
  group:cdrom:rw-
  mask::rw-
  other::r--

Désormais, un troisième groupe a des crédits de lecture et d'écriture sur le fichier, alors que le groupe dont nolwenn est membre ne les a pas...

Projets :