编辑

编辑

语境

我正在设置ZFS 自动备份在我的家庭服务器上进行异地备份。下面打印的所有命令均以非 root 身份运行。

问题

当发出以下命令时,会出现来自目标机器的“权限被拒绝”错误:

(zfs send --large-block --embed --raw --verbose --parsable --props \
 -i @previous_snap localpool/mydataset@newest_snap) | \
(ssh ostsite 'zfs recv -u -o canmount=noauto -v -s \
remotepool/myserver/localpool/mydataset')

完整命令输出:

incremental localpool/mydataset@previous_snap   localpool/mydataset@newest_snap 624
size    624
receiving incremental stream of localpool/mydataset@newest_snap into     remotepool/myserver/localpool/mydataset@newest_snap
received 1.31K stream in 1 seconds (1.31K/sec)
cannot set property for 'remotepool/myserver/localpool/mydataset': permission denied

迄今为止的发现

ZFS 没有明确说明无法设置哪个属性,但我请求设置的唯一属性是canmount=noauto。在目标机器上,我已将一些 zfs 权限委托给接收用户:

sudo zfs allow myuser snapshot,receive,create,mountpoint,mount,userprop remotepool/myserver

当我手动执行时zfs set canmount=noauto remotepool/myserver/localpool/mydataset,这会成功。

问题

  1. 我如何才能看到哪个属性无法设置?
  2. 我如何才能允许设置此属性(在接收时)?

编辑

它与属性无关canmount——只要您已 zfs 允许,该属性就可以正常设置。相反,我缺少委托keylocation。这是必需的,因为发送--raw不会解密/重新加密,因此需要prompt在到达时将密钥位置更改为。

此外,但这纯粹是 zfs-autobackup 的事情,我缺少holdrelease代表团。

答案1

它与属性无关canmount——只要您已 zfs 允许,该属性就可以正常设置。相反,我缺少委托keylocation。这是必需的,因为发送--raw不会解密/重新加密,因此需要在到达时将其更改keylocation为“ ”。prompt

此外,但这纯粹是 zfs-autobackup 的事情,我错过了保留和释放委派。

相关内容