JavaScript is required to for searching.
Ignorer les liens de navigation
Quitter l'aperu
Guide d'administration Oracle Solaris ZFS
search filter icon
search icon

Informations document

Préface

1.  Système de fichiers Oracle Solaris ZFS (introduction)

2.  Mise en route d'Oracle Solaris ZFS

3.  Différences entre les systèmes de fichiers Oracle Solaris ZFS et classiques

4.  Gestion des pools de stockage Oracle Solaris ZFS

5.  Installation et initialisation d'un système de fichiers racine ZFS Oracle Solaris

6.  Gestion des systèmes de fichiers Oracle Solaris ZFS

7.  Utilisation des instantanés et des clones ZFS Oracle Solaris

8.  Utilisation des ACL et des attributs pour protéger les fichiers Oracle Solaris ZFS

Nouveau modèle ACL Solaris

Descriptions de syntaxe pour la configuration des ACL

Héritage d'ACL

Propriété ACL (aclinherit)

Configuration d'ACL dans des fichiers ZFS

Configuration et affichage d'ACL dans des fichiers ZFS en format détaillé

Configuration d'héritage d'ACL dans des fichiers ZFS en format détaillé

Configuration et affichage d'ACL dans des fichiers ZFS en format compact

9.  Administration déléguée de ZFS dans Oracle Solaris

10.  Rubriques avancées Oracle Solaris ZFS

11.  Dépannage d'Oracle Solaris ZFS et récupération de pool

A.  Descriptions des versions d'Oracle Solaris ZFS

Index

Configuration et affichage d'ACL dans des fichiers ZFS en format compact

Vous pouvez définir et afficher les droits relatifs aux fichiers ZFS en format compact utilisant 14 lettres uniques pour représenter les droits. Les lettres représentant les droits compacts sont répertoriées dans le Tableau 8-2 et le Tableau 8-3.

Vous pouvez afficher les listes d'ACL compactes pour les fichiers et les répertoires à l'aide de la commande ls -V. Exemple :

# ls -V file.1
-rw-r--r--   1 root     root      206663 Jun 23 15:06 file.1
            owner@:rw-p--aARWcCos:------:allow
            group@:r-----a-R-c--s:------:allow
         everyone@:r-----a-R-c--s:------:allow

La sortie d'ACL compacte est décrite comme suit :

owner@

Le propriétaire peut lire et modifier le contenu du fichier ( rw=read_data/write_data), (p= append_data). Le propriétaire peut également modifier les attributs du fichier tels que l'horodatage, les attributs étendus et les listes de contrôle d'accès (ACL) (a=read_attributes , A=write_xattr, R= read_xattr, W=write_attributes, c=read_acl, C=write_acl). De plus, le propriétaire peut modifier la propriété du fichier (o=write_owner).

Le droit d'accès synchronize n'est actuellement pas implémenté.

group@

Les autorisations de lecture sur le fichier sont accordées au groupe sur le fichier (r= read_data) et les attributs du fichier (a=read_attributes , R=read_xattr, c= read_acl).

Le droit d'accès synchronize n'est actuellement pas implémenté.

everyone@

Les droits de lecture sur le fichier et sur ses attributs sont accordés à toute personne n'étant ni un utilisateur ni un groupe (r=read_data, a=append_data, R=read_xattr , c=read_acl et s= synchronize).

Le droit d'accès synchronize n'est actuellement pas implémenté.

Le format d'ACL compact dispose des avantages suivants par rapport au format d'ACL détaillé :

Pour obtenir des informations sur l'utilisation du format d'ACL détaillé, consultez Configuration et affichage d'ACL dans des fichiers ZFS en format détaillé.

Exemple 8-10 Configuration et affichage des ACL en format compact

Dans l'exemple suivant, une ACL triviale existe dans le fichier file.1 :

# ls -V file.1
-rw-r--r--   1 root     root      206663 Jun 23 15:06 file.1
            owner@:rw-p--aARWcCos:------:allow
            group@:r-----a-R-c--s:------:allow
         everyone@:r-----a-R-c--s:------:allow

Dans cet exemple, les autorisations read_data/execute sont ajoutées à l'utilisateur gozer sur le fichier file.1.

# chmod A+user:gozer:rx:allow file.1
# ls -V file.1
-rw-r--r--+  1 root     root      206663 Jun 23 15:06 file.1
        user:gozer:r-x-----------:------:allow
            owner@:rw-p--aARWcCos:------:allow
            group@:r-----a-R-c--s:------:allow
         everyone@:r-----a-R-c--s:------:allow

Dans l'exemple suivant, l'utilisateur gozer se voit accorder les droits de lecture, d'écriture et d'exécution qui sont hérités des fichiers et répertoires récemment créés grâce à l'utilisation de l'ACL compacte.

# chmod A+user:gozer:rwx:fd:allow dir.2
# ls -dV dir.2
drwxr-xr-x+  2 root     root           2 Jun 23 16:04 dir.2
        user:gozer:rwx-----------:fd----:allow
            owner@:rwxp--aARWcCos:------:allow
            group@:r-x---a-R-c--s:------:allow
         everyone@:r-x---a-R-c--s:------:allow

Vous pouvez également couper et coller les droits et les indicateurs d'héritage à partir de la sortie ls -V en format chmod compact. Par exemple, pour dupliquer les autorisations et les indicateurs d'héritage du fichier dir.2 de l'utilisateur gozer à l'utilisateur cindy dans le fichier dir.2, copiez et collez les autorisations et les indicateurs d'héritage ( rwx-----------:f-----:allow) dans la commande chmod. Par exemple :

# chmod A+user:cindy:rwx-----------:fd----:allow dir.2
# ls -dV dir.2
drwxr-xr-x+  2 root     root           2 Jun 23 16:04 dir.2
       user:cindy:rwx-----------:fd----:allow
        user:gozer:rwx-----------:fd----:allow
            owner@:rwxp--aARWcCos:------:allow
            group@:r-x---a-R-c--s:------:allow
         everyone@:r-x---a-R-c--s:------:allow

Exemple 8-11 Héritage d'ACL avec mode d'héritage ACL défini sur Pass Through

Un système de fichiers dont la propriété aclinherit est définie sur passthrough hérite de toutes les entrées d'ACL pouvant être héritées, sans qu'aucune modification ne leur soit apportée. Lorsque cette propriété est définie sur passthrough, les fichiers sont créés avec un mode de droit déterminé par les ACE pouvant être héritées. Si aucune ACE pouvant être héritée n'affecte le mode de droit, ce mode est alors défini en fonction du mode demandé à partir de l'application.

Les exemples suivants utilisent la syntaxe ACL compacte pour illustrer le processus d'héritage des bits de droit en définissant le mode aclinherit sur la valeur passthrough .

Dans cet exemple, une ACL est définie sur test1.dir pour forcer l'héritage. La syntaxe crée une entrée d'ACL owner@, group@ et everyone@ pour les fichiers nouvellement créés. Les répertoires nouvellement créés héritent d'une entrée d'ACL @owner, group@ et everyone@.

# zfs set aclinherit=passthrough tank/cindy
# pwd
/tank/cindy
# mkdir test1.dir
# chmod A=owner@:rwxpcCosRrWaAdD:fd:allow,group@:rwxp:fd:allow,everyone@::fd:allow test1.dir
# ls -Vd test1.dir
drwxrwx---+  2 root     root           2 Jun 23 16:10 test1.dir
            owner@:rwxpdDaARWcCos:fd----:allow
            group@:rwxp----------:fd----:allow
         everyone@:--------------:fd----:allow

Dans cet exemple, un fichier nouvellement créé hérite de l'ACL dont les fichiers nouvellement créés doivent hériter d'après ce qui a été spécifié.

# cd test1.dir
# touch file.1
# ls -V file.1
-rwxrwx---+  1 root     root           0 Jun 23 16:11 file.1
            owner@:rwxpdDaARWcCos:------:allow
            group@:rwxp----------:------:allow
         everyone@:--------------:------:allow

Dans cet exemple, un répertoire nouvellement créé hérite à la fois des ACE contrôlant l'accès à ce répertoire et des ACE à appliquer ultérieurement aux enfants de ce répertoire.

# mkdir subdir.1
# ls -dV subdir.1
drwxrwx---+  2 root     root           2 Jun 23 16:13 subdir.1
            owner@:rwxpdDaARWcCos:fd----:allow
            group@:rwxp----------:fd----:allow
         everyone@:--------------:fd----:allow

Les entrées fd---- permettent d'appliquer l'héritage et ne sont pas prises en compte lors du contrôle d'accès. Dans cet exemple, un fichier est créé avec une ACL insignifiante dans un autre répertoire ne contenant pas d'ACE héritées.

# cd /tank/cindy
# mkdir test2.dir
# cd test2.dir
# touch file.2
# ls -V file.2
-rw-r--r--   1 root     root           0 Jun 23 16:15 file.2
            owner@:rw-p--aARWcCos:------:allow
            group@:r-----a-R-c--s:------:allow
         everyone@:r-----a-R-c--s:------:allow

Exemple 8-12 Héritage d'ACL avec mode d'héritage ACL défini sur Pass Through-X

Lorsque aclinherit=passthrough-x est activé, les fichiers sont créés avec l'autorisation d'exécution (x) pour propriétaire@, groupe@ ou tous les utilisateurs@, mais seulement si l'autorisation d'exécution est définie dans le mode de création de fichier et dans une ACE héritable qui affecte le mode.

L'exemple suivant montre comment hériter l'autorisation d'exécution en définissant le mode aclinherit sur passthrough-x.

# zfs set aclinherit=passthrough-x tank/cindy

L'ACL suivante est définie sur /tank/cindy/test1.dir pour permettre l'héritage des ACL exécutables pour les fichiers de owner@.

# chmod A=owner@:rwxpcCosRrWaAdD:fd:allow,group@:rwxp:fd:allow,everyone@::fd:allow test1.dir
# ls -Vd test1.dir
drwxrwx---+  2 root     root           2 Jun 23 16:17 test1.dir
            owner@:rwxpdDaARWcCos:fd----:allow
            group@:rwxp----------:fd----:allow
         everyone@:--------------:fd----:allow

Un fichier (file1) est créé avec les autorisations demandées 0666. Les autorisations obtenues sont 0660. L'autorisation d'exécution n'était pas héritée car le mode de création ne le requérait pas.

# touch test1.dir/file1
# ls -V test1.dir/file1
-rw-rw----+  1 root     root           0 Jun 23 16:18 test1.dir/file1
            owner@:rw-pdDaARWcCos:------:allow
            group@:rw-p----------:------:allow
         everyone@:--------------:------:allow

Ensuite, un fichier exécutable appelé t est généré à l'aide du compilateur cc dans le répertoire testdir.

# cc -o t t.c
# ls -V t
-rwxrwx---+  1 root     root        7396 Dec  3 15:19 t
                 owner@:rwxpdDaARWcCos:------:allow
                 group@:rwxp----------:------:allow
              everyone@:--------------:------:allow

Les autorisations obtenues sont 0770 car cc a demandé des autorisations 0777, ce qui a entraîné l'héritage de l'autorisation d'exécution à partir des entrées propriétaire@, groupe@ et tous les utilisateurs@.