rsync设置群组所有者,群组权限

rsync设置群组所有者,群组权限

我想使用 rsync 将文件从我的计算机传输到远程 Linux 系统。无论本地文件的组所有权如何,我都想在远程端设置这些值。

如果我在远程 Linux 系统上,我可以创建目录并将所有权和权限设置为:

mkdir my_directory
chown :my_group my_directory
chmod 775 my_directory

如果我在本地创建目录,然后使用 rsync(请记住,我本地没有 my_group),我会这样做:

rsync -ae ssh --chmod=ug+rw,Dug+rwx my_directory remoteserver:dest

这可行,但我不知道如何通过 rsync 设置组所有者。如果我执行chmod g+s dest,my_directory 具有正确的组所有者,但其中的所有文件都有错误的组所有者。

答案1

此时此刻,我正在寻找一种方法来自己在 rsync 操作中执行此操作,而不是在后续操作中执行此操作。我希望某些文件不是所有人都可读的,并分配一个组,从而限制对该组内远程服务器进程的访问。但我还没有找到。

我唯一能想到的就是:

  1. 使用 --delay-updates 使将远程文件放入更原子、更即时的操作中
  2. rsync --chmod 选项中的 g+rwx,o+rwx

然后运行:

ssh remoteserver chgrp -R {groupname} /my/dest/folder/* && \
chmod -R o-rwx /my/dest/folder/*

答案2

我认为您的命令中缺少 -p 标志。

--chmod

此选项告诉 rsync 将一个或多个逗号分隔的“chmod”字符串应用于传输中文件的权限。结果值将被视为发送方为文件提供的权限,这意味着如果未启用 --perms,此选项似乎对现有文件没有影响

相关内容