web-dev-qa-db-fra.com

Comment laisser un utilisateur non root prendre un instantané ZFS?

J'essaie de laisser un utilisateur non root créer des instantanés zfs.

J'ai créé un ensemble d'autorisations et attribué à l'utilisateur approprié les privilèges définis:

root@computer:~# zfs allow homepool/myuser
---- Permissions on homepool/myuser -----------------------------------
Permission sets:
    @myuser_allowed mount,snapshot
Local+Descendent permissions:
    user myuser @myuser_allowed

Mais lorsque j'essaie de créer l'instantané, l'erreur suivante apparaît:

root@computer:~# su - myuser
myuser@computer:~$ /sbin/zfs snapshot homepool/myuser@`date +%F_%R`
Permission denied the ZFS utilities must be run as root.

La création de l'instantané en tant que root fonctionne comme prévu:

root@computer:~# zfs snapshot homepool/myuser@`date +%F_%R`
root@computer:~# zfs list -t snapshot
NAME                              USED  AVAIL  REFER  MOUNTPOINT
homepool/myuser@2016-10-30_19:01    44K      -  5,32G  -
homepool/myuser@2016-10-30_19:37      0      -  5,32G  -

Dois-je ajouter quelque chose à l'ensemble d'autorisations? Ou est-ce quelque chose avec les privilèges sur le binaire zfs?

root@computer:~# ls -l `which zfs`
-rwxr-xr-x 1 root root 103352 okt  5 15:05 /sbin/zfs

Appliquer les privilèges décrits ici ne fonctionne pas mieux:

root@computer:~# zfs allow -s @myuser_allowed create,mount,snapshot,clone,promote homepool/myuser
root@computer:~# zfs allow homepool/myuser
---- Permissions on homepool/myuser -----------------------------------
Permission sets:
    @myuser_allowed clone,create,mount,promote,snapshot
Local+Descendent permissions:
    user myuser @myuser_allowed
root@computer:~# su - myuser
myuser@computer:~$ /sbin/zfs snapshot homepool/myuser@`date +%F_%R`
Permission denied the ZFS utilities must be run as root.
3
azzid

Il semble que zfs allow le support ait été ajouté en tant que fonctionnalité de (le toujours pas publié) ZoL 0.7.0.

A en juger par les noms des paquets installés (pourquoi ne pas simplement faire zfs --version?):

# dpkg-query --list | grep -i zfs
ii  libzfs2linux                                0.6.5.6-0ubuntu14                             AMD64        Native OpenZFS filesystem library for Linux
ii  libzpool2linux                              0.6.5.6-0ubuntu14                             AMD64        Native OpenZFS pool library for Linux
ii  zfs-doc                                     0.6.5.6-0ubuntu14                             all          Native OpenZFS filesystem documentation and examples.
ii  zfs-zed                                     0.6.5.6-0ubuntu14                             AMD64        OpenZFS Event Daemon (zed)
ii  zfsutils-linux                              0.6.5.6-0ubuntu14                             AMD64        Native OpenZFS management utilities for Linux

Ubuntu 16.04 semble exécuter la version 0.6.5de ZFS sous Linux.

C'est probablement l'explication de la raison pour laquelle cela ne fonctionne pas pour moi. Le message d'erreur aurait pu être plus explicite à mon humble avis.

4
azzid

Au moment d'écrire ces lignes, il n'y a pas de support pour 'zfs allow' ou 'zfs unallow' dans ZoL. Si vous avez absolument besoin d'exécuter des commandes zfs en tant qu'utilisateur non-root, il vous suffit de vous connecter à "Sudo chmod g/ow/dev/zfs". Cela donnera à tous les utilisateurs la possibilité d'exécuter des commandes. Tant qu'il n'y aura pas de support intégré pour les commandes allow/unallow, c'est le seul moyen. Voir le lien ci-joint pour plus d'informations. https://github.com/zfsonlinux/zfs/issues/441

1
jrea