如何使用 rsync (chown chmod) 设置目标权限

如何使用 rsync (chown chmod) 设置目标权限

我正在尝试执行本地 rsync,从挂载点到本地文件夹。我需要将所有者、组和权限设置为特定设置。以下是我使用的:

 rsync -rtlv --chown=process:sambausers --chmod=D770,F770 /mnt/owncloud_mnt/Engineering/ /Drive_D/docs/Engineering_test

我最终获得了目录和文件的权限 760,以及所有权的 root:root(rsync 以 root 身份运行)。

我究竟做错了什么?

短暂性脑缺血发作

答案1

rsync 需要被告知您想要设置权限和所有者/组信息。可以合理地假设拥有--chmod--chown会告知这一点,但它们没有。

为了传播权限,您需要--perms-p标志;对于所有者/组,您需要--owner --group-og标志来设置所有者/组/权限信息。

文档写得有点不清楚,因此不清楚如何使用不同的组合来处理权限,或者现有文件是否受到影响。

答案2

我发现同一问题的 StackOverflow 版本更有帮助,因为看起来 Roger 和我对 rsyncs 的格式有不同的偏好--chmod(我的是来自 Debian 包的 3.1.3)。

正如 Sami 所说,rsync 需要被告知“权限”,因此要么包含-p,要么使用 隐式包含它-a。但是,要使命令真正运行,您需要(例如目录 755 和文件 644)--chmod=Du=rwx,Dg=rx,Do=rx,Fu=rw,Fg=r,Fo=r,而不是“D755,F644”格式。

相关内容