控制接收方的 rsync 用户和组

控制接收方的 rsync 用户和组

我有一个 rsync 命令,用于将远程服务器中的目录备份到安装在我服务器上的 LAN 上的本地 NAS。我使用 con 来调用该命令

rsync --rsh='ssh -pxxx' -rultxz xxx.xxx.xxx.xxx:/path/to/directory/ /media/mountpoint/directory/

问题在于目录没有获得适当的权限,这会干扰传输。以下是发生的情况:挂载点的权限为 777

第一个创建的文件夹获得 744

RSync 失败,因为它无法添加更多文件和目录

mkdir: Permission denied (13)

这些文件夹是在本地创建的,其用户 ID 和组在系统中都不存在(1028)。我猜这些是来自远程位置。

问题是:如何控制接收端创建的文件夹/文件权限,以便我可以将它们映射到本地用户并设置权限?

我尝试使用 -p 标志,并且

--chmod=u+rwx,g+rwx,o+r 

但这并没有什么区别。

答案1

问题原来出在挂载本身。通过 cron 调用 RSync 的用户不是挂载点的所有者,因此无法更改目录的权限/所有者。这就造成了用户创建了无法读取的文件夹的情况。

解决方案是在命令中添加 --super 并将用户纳入 sudo 组(然后重新启动)

相关内容