当前位置:  开发笔记 > 运维 > 正文

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

如何解决《rsync权限问题-目标权限未正确应用》经验,为你挑选了3个好方法。

这就是我想要做的:

rsync -rvl --chmod=ug=rwX,o=rX test /var/www

在我这样做之后,我得到的结果如下:

drwxr-xr-x

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

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

任何人有任何想法为什么不呢?我的语法有错吗?如果它有用,我将从OSX转移到Linux(Debian).

更新: 此外,如果它有用,当我输入umask时,我得到0002.所以这不是问题.



1> SimonJ..:

--chmod覆盖发送方权限,但如果您未指定-p--perms同样使用目标默认值(即--chmod忽略).

来自man 1 rsync:

--chmod

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



2> 小智..:

你必须使用--chmod-p选项,如下所示:

$ rsync -avz --chmod=o-rwx -p tata/ tata2/

这是一个完整的测试:

在文件夹中创建一些文件

$ mkdir tata
$ mkdir tata2
$ cd tata
$ touch tyoto
$ touch tiuti

默认权限是: 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

尝试没有参数的rsync

$ cd ..
$ rsync -avz tata/ tata2/

目标权限与源文件相同

$ 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

而现在你的烫发还可以.


实际上,-a暗示-p

3> Ben Jackson..:

我想你需要添加--perms(aka -p).从联机帮助页引用:

禁用此选项时,权限设置如下:

...

新文件将其"正常"权限位设置为源文件的权限,该权限使用接收目录的默认权限(接收进程的umask或通过目标目录的默认ACL指定的权限)进行屏蔽,并禁用其特殊权限位,但在新目录从其父目录继承setgid位的情况.

我怀疑你的目标系统有一个像022这样的典型umask,它阻止了rsync设置组写位.不幸的是--chmod,没有提到umask如何应用或不适用.

推荐阅读
农大军乐团_697
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有