首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >rsync权限问题--目标perms未正确应用

rsync权限问题--目标perms未正确应用
EN

Stack Overflow用户
提问于 2010-11-06 19:14:52
回答 3查看 47.8K关注 0票数 21

这就是我想做的:

代码语言:javascript
复制
rsync -rvl --chmod=ug=rwX,o=rX test /var/www

在我做完之后,下面是我得到的结果:

代码语言:javascript
复制
drwxr-xr-x

(实际上是drwxr-sr-x,但这可能并不重要.是吗?)

这显然不是我想要的。我希望组具有写权限,但出于某种原因,rsync命令没有设置它们。

谁知道为什么不呢?我的语法有错误吗?如果有帮助的话,我将从OSX传输到Linux (Debian)。

更新:,如果有帮助的话,当我输入umask时,我会得到0002。所以这不是问题所在。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-11-06 20:20:20

--chmod覆盖发送端权限,但是如果您也不指定-p--perms,则不管使用目标默认值(即忽略--chmod )。

来自man 1 rsync

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

票数 34
EN

Stack Overflow用户

发布于 2011-02-16 11:21:07

您必须将--chmod-p选项一起使用,如下所示:

代码语言:javascript
复制
$ rsync -avz --chmod=o-rwx -p tata/ tata2/

下面是一个完整的测试:

在文件夹中创建一些文件

代码语言:javascript
复制
$ mkdir tata
$ mkdir tata2
$ cd tata
$ touch tyoto
$ touch tiuti

默认的perms是:u=rw, g=r, o=r

代码语言:javascript
复制
$ 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

代码语言:javascript
复制
$ cd ..
$ rsync -avz tata/ tata2/

目标perms与源文件相同。

代码语言:javascript
复制
$ 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

代码语言:javascript
复制
$ 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

现在你的烫发没问题了。

票数 20
EN

Stack Overflow用户

发布于 2010-11-06 19:36:41

我认为您需要添加--perms (又名-p)。引用“手册”的话:

当此选项关闭时,权限设置如下: ..。 新文件将其“正常”权限位设置为源文件的权限,该权限与接收目录的默认权限(接收进程的umask,或通过目标目录的默认ACL指定的权限)屏蔽。并且禁用它们的特殊权限位,除非新目录从其父目录继承setgid位。

我怀疑您的目标系统有一个典型的umask,如022,这会阻止组写位被rsync设置。不幸的是,--chmod没有提到umask如何应用或不应用。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4114716

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档