rsync 备份弄乱了文件的权限

rsync 备份弄乱了文件的权限

我使用 Android 设备上的 rsync 备份将一些文件从我的设备备份到我的 *nix 服务器。它有点工作正常,但目标目录及其下的所有文件的文件模式标志都设置为 075,导致所有者(我)无法访问它们。
我猜这个缺陷是 rsync 备份的问题,但我还没有找到解决办法。
当文件通过 ssh 传输时,有没有办法触发作业?

我当前的解决方法是让 cron 作业定期将文件标志设置为 755。

我正在使用以下 rsync 命令:

rsync -rptgo --progress --delete-after -e "ssh -y -p 22  -i '/sdcard/dss_key'" /sdcard/myfolder user@server:~/

答案1

您的移动设备(源)上的权限可能设置为075。如果使用该-p参数调用rsync,则会保留权限。

当此选项关闭时,权限设置如下:

o 现有文件(包括更新的文件)保留其现有权限,但 --executability 选项可能只会改变文件的执行权限。

o 新文件的“正常”权限位设置为源文件的权限,并用接收目录的默认权限(接收进程的 umask 或通过目标目录的默认 ACL 指定的权限)进行屏蔽,并且其特殊权限位被禁用,除非新目录从其父目录继承了 setgid 位。

来自 rsync 的手册页

因此,你可能必须使用

rsync -rtg --progress --delete-after -e "ssh -y -p 22 -i '/sdcard/dss_key'" /sdcard/myfolder user@server:~/

我还省略了-o(保留所有者)标志,该​​标志仅在您根据给定的命令以身份登录目的地时才有效root,而您无需执行此操作。

相关内容