这就是我想做的:
rsync -rvl --chmod=ug=rwX,o=rX test /var/www在我做完之后,下面是我得到的结果:
drwxr-xr-x(实际上是drwxr-sr-x,但这可能并不重要.是吗?)
这显然不是我想要的。我希望组具有写权限,但出于某种原因,rsync命令没有设置它们。
谁知道为什么不呢?我的语法有错误吗?如果有帮助的话,我将从OSX传输到Linux (Debian)。
更新:,如果有帮助的话,当我输入umask时,我会得到0002。所以这不是问题所在。
发布于 2010-11-06 20:20:20
--chmod覆盖发送端权限,但是如果您也不指定-p或--perms,则不管使用目标默认值(即忽略--chmod )。
来自man 1 rsync
--chmod 此选项告诉rsync将一个或多个逗号分隔的"chmod“字符串应用于传输中文件的权限。结果值被视为是发送方为文件提供的权限,这意味着如果--perms未启用,则此选项似乎不会对现有文件产生任何影响。
发布于 2011-02-16 11:21:07
您必须将--chmod与-p选项一起使用,如下所示:
$ rsync -avz --chmod=o-rwx -p tata/ tata2/下面是一个完整的测试:
在文件夹中创建一些文件
$ mkdir tata
$ mkdir tata2
$ cd tata
$ touch tyoto
$ touch tiuti默认的perms是:u=rw, g=r, o=r
$ ls -l
total 0
-rw-r--r-- 1 romain users 0 fév 16 11:48 tiuti
-rw-r--r-- 1 romain users 0 fév 16 11:48 tyoto尝试不带params的rsync
$ cd ..
$ rsync -avz tata/ tata2/目标perms与源文件相同。
$ ls -l tata2
total 0
-rw-r--r-- 1 romain users 0 fév 16 11:48 tiuti
-rw-r--r-- 1 romain users 0 fév 16 11:48 tyoto指定rsync选项--chmod=o-rwx -p
$ rsync -avz --chmod=o-rwx -p tata/ tata2/
$ ls -l tata2
total 0
-rw-r----- 1 romain users 0 fév 16 11:48 tiuti
-rw-r----- 1 romain users 0 fév 16 11:48 tyoto现在你的烫发没问题了。
发布于 2010-11-06 19:36:41
我认为您需要添加--perms (又名-p)。引用“手册”的话:
当此选项关闭时,权限设置如下: ..。 新文件将其“正常”权限位设置为源文件的权限,该权限与接收目录的默认权限(接收进程的umask,或通过目标目录的默认ACL指定的权限)屏蔽。并且禁用它们的特殊权限位,除非新目录从其父目录继承setgid位。
我怀疑您的目标系统有一个典型的umask,如022,这会阻止组写位被rsync设置。不幸的是,--chmod没有提到umask如何应用或不应用。
https://stackoverflow.com/questions/4114716
复制相似问题