这是我的设置:
在我的源机器上,我创建了具有 /source/path 读写权限的用户 rsyncuser
在目标机器上我创建了用户 rsyncuser/destination/path 中的读写权限
要使用 virtualmins 计划备份功能 (cron),我需要以 root 身份运行命令。我不想直接以 root 身份 rsync(只是因为没有人能回答这个问题如何通过 ssh 使用 rsync 和 rsa 密钥密码?--- 搜索包含密码的解决方案),因此我尝试使用 sudo -Hu。
但是我的命令/逻辑中肯定存在一些错误,因为从源机器以 root 身份运行此命令后:
sudo -Hu rsyncuser rsync --progress -avz /source/path/ messerliweb.ch:/destination/path/
我收到很多权限错误:
rsync: failed to modify permissions on "/destination/path/.": Permission denied (13)
rsync:recv_generator:无法统计“/destination/path/x1.tar.gz”:权限被拒绝(13)rsync:recv_generator:无法统计“/destination/path/x2.tar.gz”:权限被拒绝(13)
等根据http://rafaelwolf.com/?p=683这可能是由于缺少写入权限来源文件夹。所以我对它们进行了 chmod 修改。但无济于事。
然而,我无法理解的是,运行我的命令后,/destination/path 的文件权限发生了变化,我的 rsync 用户无法再 cd 进入该目录!在运行命令 cd 之前,用户 rsyncuser 可以在此目录中写入。(我多次测试过)
之后我得到:
bash: cd: /destination/path: Permission denied
为什么 rsync 会弄乱我的文件权限?还是 sudo -Hu?当我在目标计算机上将文件权限 chmod 恢复为 rsync 时,一切似乎又恢复正常,直到我再次运行 rsync 命令 - 然后写入和 cd 权限再次丢失。
有没有搞错?
编辑:添加
--chmod=u=rwx,g=rwx,o=rwx
似乎省略我的问题。但是,如果有人能帮助我理解为什么 rsync 会更改文件权限,我仍然会很感激?