![如何让非 root 用户拍摄 ZFS 快照?](https://linux22.com/image/1057941/%E5%A6%82%E4%BD%95%E8%AE%A9%E9%9D%9E%20root%20%E7%94%A8%E6%88%B7%E6%8B%8D%E6%91%84%20ZFS%20%E5%BF%AB%E7%85%A7%EF%BC%9F.png)
我正在尝试让非 root 用户创建 zfs 快照。
我创建了一个权限集并授予适当的用户其中定义的权限:
root@computer:~# zfs allow homepool/myuser
---- Permissions on homepool/myuser -----------------------------------
Permission sets:
@myuser_allowed mount,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.
以 root 身份创建快照按预期进行:
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 -
我是否需要在权限集中添加其他内容?还是与 zfs 二进制文件上的权限有关?
root@computer:~# ls -l `which zfs`
-rwxr-xr-x 1 root root 103352 okt 5 15:05 /sbin/zfs
应用所述特权这里效果不佳:
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.
答案1
似乎zfs allow
支持添加作为 ZoL(尚未发布)的一项功能0.7.0
。
根据已安装软件包的名称来判断(为什么你不能直接这样做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 似乎0.6.5
在 Linux 上运行 ZFS 版本。
这可能就是为什么它对我来说不起作用的原因。我认为错误消息本来可以更明确。
答案2
截至撰写本文时,ZoL 尚不支持“zfs allow”或“zfs unallow”。如果您确实需要以非 root 用户身份运行 zfs 命令,只需“sudo chmod g+o rw /dev/zfs”即可。这将使所有用户都能够运行命令。在内置对 allow/unallow 命令的支持之前,这是唯一的方法。有关更多信息,请参阅随附的链接。 https://github.com/zfsonlinux/zfs/issues/4410