树莓派网络硬盘的 Rsnapshot 文件权限问题

问题描述

在尝试解决这个问题几天后,我想在这里寻求帮助:

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

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 连接时,我收到权限被拒绝的错误

文件/目录是通过物理连接(不同用户:本地和 rasppi)创建时,Rsnapshot 显然不允许管理每个 sshfs 的文件。我尝试使用选项 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 上创建。

解决方法

我假设您以 root 身份运行 rsnapshot,并且 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,您仍然以“pi”身份进行 SSH 连接,这意味着在连接的远端完成的所有操作都由用户 pi 完成。 sshfs 的任何选项都无法改变这一事实。您需要启用 root 登录,然后以 root 或至少某些对该驱动器具有完全 R/W 访问权限的用户身份 ssh 登录。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...