Vous pouvez utiliser la commande zfs allow pour accorder des droits applicables aux jeux de données ZFS aux utilisateurs non root, de la manière suivante :
Vous pouvez accorder des droits individuels à un utilisateur, à un groupe, voire à tous les utilisateurs.
Vous pouvez accorder des groupes de droits individuels sous forme de jeu de droits à un utilisateur, à un groupe, voire à tous les utilisateurs.
Vous pouvez accorder des droits localement uniquement au jeu de données actuel ou à tous les descendants de celui-ci.
Le tableau suivant décrit les opérations pouvant être déléguées et tout droit dépendant devant réaliser ces opérations déléguées.
Droit (sous-commande) |
Description |
Dépendances |
---|---|---|
allow |
Capacité à accorder des droits qui vous ont été octroyés à un autre utilisateur. |
Doit également disposer du droit à autoriser. |
Clone |
Capacité à cloner tout instantané du jeu de données. |
Doit également disposer de la capacité create et de la capacité mount dans le système de fichiers d'origine. |
create |
Capacité à créer des jeux de données descendants. |
Doit également disposer de la capacité mount. |
destroy |
Capacité à détruire un jeu de données. |
Doit également disposer de la capacité mount. |
monter |
Capacité à monter et démonter un jeu de données, et à créer et détruire les liens vers des périphériques de volume. | |
promote |
Capacité à promouvoir le clonage d'un jeu de données. |
Doit également disposer de la capacité mount et de la capacité promote dans le système de fichiers d'origine. |
receive |
Capacité à créer des systèmes de fichiers descendant à l'aide de la commande zfs receive. |
Doit également disposer de la capacité mount et de la capacité create. |
rename |
Capacité à renommer un jeu de données. |
Doit également disposer de la capacité create et de la capacité mount dans le nouveau parent. |
rollback |
Capacité à restaurer un instantané. | |
send |
Capacité à envoyer un flux d'instantané. | |
share |
Capacité à partager et annuler le partage d'un·jeu de données. | |
Instantané |
Capacité à prendre un instantané de·jeu de données. |
Vous pouvez déléguer l'ensemble d'autorisations suivant mais l'autorisation peut être limitée à l'accès, la lecture et la modification :
groupquota
groupused
userprop
userquota
userused
Vous pouvez en outre déléguer les propriétés ZFS suivantes à des utilisateurs non root :
aclinherit
aclmode
atime
canmount
casesensitivity
Somme de contrôle
compression
copies
devices
exec
mountpoint
nbmand
normalization
primarycache
quota
readonly
recordsize
refreservation
reservation
secondarycache
setuid
shareiscsi
sharenfs
sharesmb
snapdir
utf8only
version
volblocksize
volsize
vscan
xattr
zoned
Certaines de ces propriétés ne peuvent être définies qu'à la création d'un jeu de données. Pour une description de ces propriétés, reportez-vous à la section Présentation des propriétés ZFS.
La syntaxe de zfs allow est la suivante :
zfs allow -[ldugecs] everyone|user|group[,...] perm|@setname,...] filesystem| volume |
La syntaxe de zfs allow suivante (en gras) identifie les utilisateurs auxquels les droits sont délégués :
zfs allow [-uge]|user|group|everyone [,...] filesystem | volume |
Vous pouvez spécifier plusieurs entrées sous forme de liste séparée par des virgules. Si aucune option -uge n'est spécifiée, l'argument est interprété en premier comme le mot-clé everyone, puis comme un nom d'utilisateur et enfin, comme un nom de groupe. Pour spécifier un utilisateur ou un groupe nommé "everyone", utilisez l'option -u ou l'option -g. Pour spécifier un groupe portant le même nom qu'un utilisateur, utilisez l'option -g. L'option -c accorde des droits create-time.
La syntaxe de zfs allow suivante (en gras) identifie la méthode de spécification des droits et jeux de droits :
zfs allow [-s] ... perm|@setname [,...] filesystem | volume |
Vous pouvez spécifier plusieurs droits sous forme de liste séparée par des virgules. Les noms de droits sont identiques aux sous-commandes et propriétés ZFS. Pour plus d'informations, reportez-vous à la section précédente.
Les droits peuvent être regroupés en jeux de droits et sont identifiés par l'option -s. Les jeux de droits peuvent être utilisés par d'autres commandes zfs allow pour le système de fichiers spécifié et ses descendants. Les jeux de droits sont évalués dynamiquement et de ce fait, toute modification apportée à un jeu est immédiatement mise à jour. Les jeux de droits doivent se conformer aux mêmes conventions d'attribution de noms que les systèmes de fichiers ZFS, à ceci près que leurs noms doivent commencer par le caractère arobase (@) et ne pas dépasser 64 caractères.
La syntaxe de zfs allow suivante (en gras) identifie la méthode de délégation des droits :
zfs allow [-ld] ... ... filesystem | volume |
L'option -l indique que le droit est accordé au jeu de données spécifié mais pas à ses descendants, à moins de spécifier également l'option -d. L'option -d indique que le droit est accordé pour les jeux de données descendants mais pas pour l'actuel jeu de données, à moins de spécifier également l'option -l. Si aucun des droits -ld n'est spécifié, les droits sont accordés au système de fichiers ou au volume, ainsi qu'à leurs descendants.
Vous pouvez supprimer des droits précédemment accordés, à l'aide de la commande zfs unallow.
Supposons par exemple que vous déléguiez les droits create, destroy, mount et snapshot de la manière suivante :
# zfs allow cindys create,destroy,mount,snapshot tank/cindys # zfs allow tank/cindys ------------------------------------------------------------- Local+Descendent permissions on (tank/cindys) user cindys create,destroy,mount,snapshot ------------------------------------------------------------- |
Pour supprimer ces autorisations, vous devez utiliser une syntaxe du type suivant :
# zfs unallow cindys tank/cindys # zfs allow tank/cindys |