Guide d'administration Oracle Solaris ZFS

Configuration d'ACL dans des fichiers ZFS

Dans la mesure où elles sont implémentées avec ZFS, les ACL se composent d'entrées d'ACL. ZFS fournit un modèle ACL pur dans lequel tous les fichiers disposent d'une ACL. L'ACL est habituellement triviale dans la mesure où elle ne représente que les entrées UNIX traditionnelles owner/group/other.

Si vous modifiez les permissions du fichier, l'ACL du fichier est mise à jour en conséquence. En outre, si vous supprimez une ACL non triviale qui accordait à un utilisateur l'accès à un fichier ou à un répertoire, il est possible que cet utilisateur y ait toujours accès en raison des bits de permission qui accordent l'accès à un groupe ou à tous. L'ensemble des décisions de contrôle d'accès est régi par les droit représentés dans l'ACL d'un fichier ou d'un répertoire.

Les principales règles d'accès aux ACL dans un fichier ZFS sont les suivantes :

Si vous configurez une ACL non triviale dans un répertoire, les enfants du répertoire n'en héritent pas automatiquement. Si vous configurez une ACL non triviale et souhaitez qu'elle soit héritée par les enfants du répertoire, vous devez utiliser les indicateurs d'héritage d'ACL. Pour plus d'informations, consultez le Tableau 8–3 et la section Configuration d'héritage d'ACL dans des fichiers ZFS en format détaillé.

Lorsque vous créez un fichier, en fonction de la valeur umask, une ACL triviale par défaut, similaire à la suivante, est appliquée :


$ ls -v file.1
-rw-r--r--   1 root     root      206663 May 20 14:09 file.1
     0:owner@:execute:deny
     1:owner@:read_data/write_data/append_data/write_xattr/write_attributes
         /write_acl/write_owner:allow
     2:group@:write_data/append_data/execute:deny
     3:group@:read_data:allow
     4:everyone@:write_data/append_data/write_xattr/execute/write_attributes
         /write_acl/write_owner:deny
     5:everyone@:read_data/read_xattr/read_attributes/read_acl/synchronize
         :allow

Notez que chaque catégorie d'utilisateur (owner@, group@, everyone@) dispose de deux entrées ACL dans cet exemple. Une entrée correspond aux permissions deny et une autre aux permissions allow.

La description de l'ACL de ce fichier est la suivante :

0:owner@

Le propriétaire ne dispose pas de la permission d'exécution sur le fichier (execute:deny ).

1:owner@

Le propriétaire peut lire et modifier le contenu d'un fichier ( read_data/write_data/append_data). Le propriétaire peut également modifier les attributs du fichier, tels que les horodatages, les attributs étendus et les ACL (write_xattr/write_attributes /write_acl). Le propriétaire peut également modifier la propriété du fichier (write_owner:allow).

2:group@

Les permissions de modification et d'exécution sur fichier sont refusées au groupe (write_data/append_data/execute:deny).

3:group@

Des droits de lecture du fichier sont accordés au groupe (read_data:allow).

4:everyone@

Tout utilisateur n'étant pas le propriétaire du fichier ou membre du groupe propriétaire du fichier, ne peut ni exécuter, ni modifier les informations ou les attributs d'un fichier (write_data/append_data/write_xattr/execute/write_attributes/write_acl/write_owner:deny ).

5:everyone@

Tout utilisateur n'étant pas le propriétaire du fichier ou membre du groupe propriétaire du fichier dispose de permissions de lecture sur le fichier et ses attributs (lread_data/read_xattr/read_attributes/read_acl/synchronize:allow ). Le droit d'accès synchronize n'est actuellement pas implémenté.

Lorsque vous créez un répertoire dépendant de la valeur umask, un répertoire ACL par défaut, semblable au répertoire ACL suivant, est appliqué :


$ ls -dv dir.1
drwxr-xr-x   2 root     root           2 May 20 14:11 dir.1
     0:owner@::deny
     1:owner@:list_directory/read_data/add_file/write_data/add_subdirectory
         /append_data/write_xattr/execute/write_attributes/write_acl
         /write_owner:allow
     2:group@:add_file/write_data/add_subdirectory/append_data:deny
     3:group@:list_directory/read_data/execute:allow
     4:everyone@:add_file/write_data/add_subdirectory/append_data/write_xattr
         /write_attributes/write_acl/write_owner:deny
     5:everyone@:list_directory/read_data/read_xattr/execute/read_attributes
         /read_acl/synchronize:allow

La description de l'ACL de ce répertoire est la suivante :

0:owner@

La liste deny du propriétaire est vide pour le répertoire (::deny).

1:owner@

Le propriétaire peut lire et modifier le contenu du répertoire (list_directory/read_data/add_file/write_data/add_subdirectory/append_data ), effectuer des recherches dans le contenu (execute) et modifier les attributs du répertoire, tels que les horodatages, les attributs étendus et les ACL (write_xattr/write_attributes/write_acl). De plus, le propriétaire peut modifier la propriété du répertoire (write_owner:allow).

2:group@

Le groupe ne peut pas ajouter ni modifier le contenu du répertoire (add_file/write_data/add_subdirectory/append_data:deny).

3:group@

Le groupe peut répertorier et lire le contenu du répertoire. De plus, le groupe dispose de droits d'exécution pour effectuer des recherches dans le contenu du répertoire (list_directory/read_data/execute:allow).

4:everyone@

Tout utilisateur n'étant pas le propriétaire du fichier ou membre du groupe propriétaire du fichier ne peut ni ajouter, ni modifier le contenu du répertoire (add_file/write_data/add_subdirectory/append_data). En outre, cet utilisateur ne dispose pas de la permission de modifier les attributs du répertoire (write_xattr/write_attributes/write_acl/write_owner:refuser).

5:everyone@

Tout utilisateur n'étant pas le propriétaire du fichier ou membre du groupe propriétaire du fichier dispose de permissions de lecture et d'exécution sur le contenu et les attributs du répertoire (list_directory/les permissions read_data/read_xattr/execute/read_attributes/read_acl/synchronize:allow ). Le droit d'accès synchronize n'est actuellement pas implémenté.