Gestion des systèmes de fichiers ZFS dans Oracle®Solaris 11.2

Quitter la vue de l'impression

Mis à jour : Décembre 2014
 
 

Délégation d'autorisations ZFS (exemples)

Exemple 8-1  Délégation d'autorisations à un utilisateur individuel

Lorsque vous déléguez les autorisations create et mount à un utilisateur individuel, vous devez vous assurer qu'il dispose d'un droit d'accès au de point de montage sous-jacent.

Par exemple, pour déléguer à l'utilisateur mark les autorisations create et mount sur le système de fichiers tank, définissez au préalable ces autorisations :

# chmod A+user:mark:add_subdirectory:fd:allow /tank/home

Utilisez ensuite la commande zfs allow pour déléguer les autorisations create, destroy et mount. Par exemple :

# zfs allow mark create,destroy,mount tank/home

L'utilisateur mark peut dorénavant créer ses propres systèmes de fichiers dans le système de fichiers tank/home. Par exemple :

# su mark
mark$ zfs create tank/home/mark
mark$ ^D
# su lp
$ zfs create tank/home/lp
cannot create 'tank/home/lp': permission denied
Exemple 8-2  Délégation des autorisations de création (create) et de destruction (destroy) à un groupe

L'exemple suivant décrit comment configurer un système de fichiers de manière à ce que tout membre du groupe staff puisse créer et monter des systèmes de fichiers dans le système de fichiers tank/home, et détruire ses propres systèmes de fichiers. Toutefois, les membres du groupe staff ne sont pas autorisés à détruire les systèmes de fichiers des autres utilisateurs.

# zfs allow staff create,mount tank/home
# zfs allow -c create,destroy tank/home
# zfs allow tank/home
---- Permissions on tank/home ----------------------------------------
Create time permissions:
create,destroy
Local+Descendent permissions:
group staff create,mount
# su cindy
cindy% zfs create tank/home/cindy/files
cindy% exit
# su mark
mark% zfs create tank/home/mark/data
mark% exit
cindy% zfs destroy tank/home/mark/data
cannot destroy 'tank/home/mark/data': permission denied
Exemple 8-3  Délégation d'autorisations au niveau approprié d'un système de fichiers

Assurez-vous de déléguer les autorisations aux utilisateurs au niveau approprié du système de fichiers. Par exemple, l'utilisateur mark est autorisé àcreate, destroy et mount les autorisations pour les systèmes de fichiers locaux et descendants. L'autorisation locale de créer un instantané du système de fichiers tank/home a été délégué à l'utilisateur mark, mais pas celle de créer un instantané de son propre système de fichiers. L'autorisation snapshot ne lui a donc pas été déléguée au niveau approprié du système de fichiers.

# zfs allow -l mark snapshot tank/home
# zfs allow tank/home
---- Permissions on tank/home ----------------------------------------
Create time permissions:
create,destroy
Local permissions:
user mark snapshot
Local+Descendent permissions:
group staff create,mount
# su mark
mark$ zfs snapshot tank/home@snap1
mark$ zfs snapshot tank/home/mark@snap1
cannot create snapshot 'tank/home/mark@snap1': permission denied

Pour déléguer à l'utilisateur mark cette autorisation au niveau du système de fichiers descendants, utilisez l'option zfs allow –d. Par exemple :

# zfs unallow -l mark snapshot tank/home
# zfs allow -d mark snapshot tank/home
# zfs allow tank/home
---- Permissions on tank/home ----------------------------------------
Create time permissions:
create,destroy
Descendent permissions:
user mark snapshot
Local+Descendent permissions:
group staff create,mount
# su mark
$ zfs snapshot tank/home@snap2
cannot create snapshot 'tank/home@snap2': permission denied
$ zfs snapshot tank/home/mark@snappy

L'utilisateur mark ne peut maintenant créer un instantané qu'à un niveau inférieur du système de fichiers tank/home.

Exemple 8-4  Définition et utilisation d'autorisations déléguées complexes

Vous pouvez déléguer des autorisations spécifiques à des utilisateurs ou des groupes. Par exemple, la commande zfs allow suivante délègue des autorisations spécifiques au groupe staff. En outre, les autorisations destroy et snapshot sont déléguées après la création de systèmes de fichiers tank/home.

# zfs allow staff create,mount tank/home
# zfs allow -c destroy,snapshot tank/home
# zfs allow tank/home
---- Permissions on tank/home ----------------------------------------
Create time permissions:
create,destroy,snapshot
Local+Descendent permissions:
group staff create,mount

Etant donné que l'utilisateur mark est membre du groupe staff, il peut créer des systèmes de fichiers dans tank/home. En outre, l'utilisateur mark peut créer un instantané de tank/home/mark2 parce qu'il dispose des autorisations spécifiques pour le faire. Par exemple :

# su mark
$ zfs create tank/home/mark2
$ zfs allow tank/home/mark2
---- Permissions on tank/home/mark2 ----------------------------------
Local permissions:
user mark create,destroy,snapshot
---- Permissions on tank/home ----------------------------------------
Create time permissions:
create,destroy,snapshot
Local+Descendent permissions:
group staff create,mount

L'utilisateur mark ne peut pas créer d'instantané dans tank/home/mark parce qu'il ne dispose pas des autorisations spécifiques pour le faire. Par exemple :

$ zfs snapshot tank/home/mark@snap1
cannot create snapshot 'tank/home/mark@snap1': permission denied

Dans cet exemple, l'utilisateur mark possède l'autorisation create dans son répertoire d'accueil, ce qui signifie qu'il peut créer des instantanés. Ce scénario s'avère utile lorsque votre système de fichiers est monté sur un système NFS.

$ cd /tank/home/mark2
$ ls
$ cd .zfs
$ ls
shares snapshot
$ cd snapshot
$ ls -l
total 3
drwxr-xr-x   2 mark    staff          2 Sep 27 15:55 snap1
$ pwd
/tank/home/mark2/.zfs/snapshot
$ mkdir snap2
$ zfs list
# zfs list -r tank/home
NAME                    USED  AVAIL  REFER  MOUNTPOINT
tank/home/mark           63K  62.3G    32K  /tank/home/mark
tank/home/mark2          49K  62.3G    31K  /tank/home/mark2
tank/home/mark2@snap1    18K      -    31K  -
tank/home/mark2@snap2      0      -    31K  -
$ ls
snap1  snap2
$ rmdir snap2
$ ls
snap1
Exemple 8-5  Définition et utilisation d'un jeu d'autorisations délégué ZFS

L'exemple suivant décrit comment créer un jeu d'autorisations intitulé @myset et déléguer ce jeu d'autorisations ainsi que l'autorisation rename au groupe staff pour le système de fichiers tank. L'utilisateur cindy, membre du groupe staff, a l'autorisation de créer un système de fichiers dans tank. Par contre, l'utilisateur lp ne dispose pas de cette autorisation de création de systèmes de fichiers dans tank.

# zfs allow -s @myset create,destroy,mount,snapshot,promote,clone,readonly tank
# zfs allow tank
---- Permissions on tank ---------------------------------------------
Permission sets:
@myset clone,create,destroy,mount,promote,readonly,snapshot
# zfs allow staff @myset,rename tank
# zfs allow tank
---- Permissions on tank ---------------------------------------------
Permission sets:
@myset clone,create,destroy,mount,promote,readonly,snapshot
Local+Descendent permissions:
group staff @myset,rename
# chmod A+group:staff:add_subdirectory:fd:allow tank
# su cindy
cindy% zfs create tank/data
cindy% zfs allow tank
---- Permissions on tank ---------------------------------------------
Permission sets:
@myset clone,create,destroy,mount,promote,readonly,snapshot
Local+Descendent permissions:
group staff @myset,rename
cindy% ls -l /tank
total 15
drwxr-xr-x   2 cindy   staff          2 Jun 24 10:55 data
cindy% exit
# su lp
$ zfs create tank/lp
cannot create 'tank/lp': permission denied