rsync设置组所有者,组权限


10

我想使用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具有正确的组所有者,但是其中的所有文件都具有错误的组所有者。


@ChrisInEdmonton,您好,您是否找到了使这项工作最终完成的方法?我现在正面临着同样的问题,我正在运行cygwin来将文件从Windows同步到Linux盒,但是无法设置要通过其发送的新文件的正确组ID:rsync -avz --delete --exclude "*.git" --chmod=ug=rwx,o=rx /cygdrive/d/projx/ john@123.123.123.123:/var/prox/文件以john:john而不是john:projx(其中projx是群组的名称)
约翰·约翰·约翰(John John

1
我刚刚发现--groupmap=*:group-name'ha 刚发现rsync 3.1包含 ..
约翰

Answers:


8

此时此刻,我正在寻找一种自己在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/*

是的,我认为这就是我们要做的。我很惊讶,您或我无法找到仅通过rsync来做到这一点的方法,但是嘿。
ChrisInEdmonton 2010年

6

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

--chmod

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


1
-p标志隐式包含在-a(归档)选项中。
Anthony Geoghegan
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.