raspberry pi 网络硬盘的 Rsnapshot 文件权限问题

Rsnapshot filepermission problem with network hdd over raspberry pi

经过几天的努力解决这个问题,我想在这里寻求帮助:

我想使用 rsnapshot 进行备份,它通常 运行 在服务器上并管理本地备份。就我而言,我想在我的计算机上 运行 rsnapshot 并让 rsnapshot 管理我在外部硬盘驱动器上的备份。此外部硬盘已连接到我的 raspberry pi 并使用以下命令安装到我的计算机:

sudo sshfs -o default_permissions,allow_other,idmap=user,IdentityFile=/home/user/.ssh/id_rsa pi@192.168.0.1:/mnt/externelHdd /mnt/backupHdd

这里,/mnt/backupHdd是rsnapshots备份目录的本地根目录。

此外,我想将外部硬盘驱动器直接连接到我的计算机以进行更大的备份工作。为此,我编写了一个脚本,它使用上层命令在本地或通过网络安装外部硬盘驱动器。之后,它使用 sudo rsnapshot daily 启动 rsnapshot 作业。当硬盘驱动器在本地连接时,一切正常。当它通过 sshfs 连接时,我收到权限被拒绝的错误。

Rsnapshot 显然不允许管理每个 sshfs 的文件,当 files/directories 是通过物理连接创建的(不同的用户:本地和 rasppi)。我尝试使用选项 allow_otheridmap=user 来解决这个问题,但我认为还有更多工作要做。所以我问你们:我怎样才能给rsnapshot权限?

感谢您的帮助!

编辑:

我收到以下错误:

/bin/cp: cannot create directory '/mnt/backupHdd/daily.1': Permission denied
----------------------------------------------------------------------------
rsnapshot encountered an error! The program was invoked with these options:
/usr/bin/rsnapshot daily 
----------------------------------------------------------------------------
ERROR: /bin/cp -al /mnt/backupHdd/daily.0 /mnt/backupHdd/daily.1 failed (result 256, exit status 1).
ERROR: Error! cp_al("/mnt/backupHdd/daily.0/", "/mnt/backupHdd/daily.1/")

daily.0 是在硬盘连接到我的本地计算机时创建的。 daily.1 应该用我的硬盘创建,安装在 sshfs 上。

我假设您的 运行 rsnapshot 是 root 并且 root 拥有远程备份目录。这个命令:

sudo sshfs -o default_permissions,allow_other,idmap=user,IdentityFile=/home/user/.ssh/id_rsa pi@192.168.0.1:/mnt/externelHdd /mnt/backupHdd

不会像我想的那样成功。即使您在连接的本地端使用 sudo,您仍然 SSH-ing 为“pi”,这意味着在连接的远端所做的一切都是由用户 pi 完成的。 sshfs 的任何选项都无法改变这一事实。您需要启用 root 登录,然后以 root 身份通过 ssh 登录,或者至少需要一些对该驱动器具有完全 R/W 访问权限的用户。