Permissions rsync部署和文件/目录权限

Permissions rsync部署和文件/目录权限,permissions,rsync,chmod,Permissions,Rsync,Chmod,我正在尝试使用rsync部署驻留在共享web主机上的网站 Phpsuexec正在其上运行,这导致我对通过rsync传输的文件和目录的权限出现问题。实际上,文件应该设置为644,目录应该设置为755,否则会出现500错误 经过几次尝试,我得到了以下rsync命令: rsync -avz -e ssh --chmod=Du=rwx,go=rx,Fu=rw,og=r -p --exclude-from=/var/www/mylocalfolder/.rsyncignore /var/www/myloc

我正在尝试使用rsync部署驻留在共享web主机上的网站

Phpsuexec正在其上运行,这导致我对通过rsync传输的文件和目录的权限出现问题。实际上,文件应该设置为644,目录应该设置为755,否则会出现500错误

经过几次尝试,我得到了以下rsync命令:

rsync -avz -e ssh --chmod=Du=rwx,go=rx,Fu=rw,og=r -p --exclude-from=/var/www/mylocalfolder/.rsyncignore /var/www/mylocalfolder/ user@mywebsite.net:~/
不幸的是,由于所有已发送的目录都已设置为744,因此此命令无法按预期工作。另一方面,文件权限已在644上正确设置

我不明白怎么了

另外,我在本地机器上使用Linux。

这样试试:

--chmod=Du=rwx,Dg=rx,Do=rx,Fu=rw,Fg=r,Fo=r

这对我很有效。

你解决这个问题了吗?如果是,请分享,因为我遇到了完全相同的问题…不幸的是,我无法解决问题。请注意,您不需要
-p
选项:它由
-a
表示,这是
-rlptgoD
()的别名。这对我很有用。我想对目录执行770,对文件执行660,这与这个标志一起工作:--chmod=Du=rwx,Dg=rwx,do=,Fu=rw,Fg=rw,Fo=谢谢你,清楚且有用。如果你已经拥有数字形式的所需权限,你可以使用更短的
--chmod=D0770,F0660
我想你还需要检查
--perms
是否通过,并且当前用户有权更改该文件的权限。要为特定组将文件或文件夹的权限设置为“无”,只需在
=
符号后不分配任何内容即可。例如,要将目录权限设置为750,将文件权限设置为640,您可以使用以下命令:
rsync--chmod=Du=rwx,Dg=rx,D=,Fu=rw,Fg=r,Fo=--recursive~/my/old/location~/my/new/location
如果您没有专门设置权限,那么它们将被设置为源权限的任何内容