【问题标题】:rsync deploy and file/directories permissionsrsync 部署和文件/目录权限
【发布时间】:2012-02-28 22:23:16
【问题描述】:

我正在尝试使用 rsync 来部署我的网站,该网站驻留在共享网络主机上。

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。

【问题讨论】:

  • 这个问题你解决了吗?如果是这样,请分享,因为我遇到了完全相同的问题...
  • 很遗憾我没能解决问题。
  • 请注意,您不需要-p 选项:它由-a 隐含,它是-rlptgoD (source) 的别名。

标签: permissions rsync chmod


【解决方案1】:

试试这样:

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

它对我有用。

【讨论】:

  • 这对我有用。我想为目录做 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 如果您没有专门设置权限,它们将被设置为任何源权限
猜你喜欢
  • 2018-08-05
  • 2011-09-06
  • 1970-01-01
  • 2017-01-15
  • 2017-11-03
  • 2016-10-02
  • 1970-01-01
  • 2014-06-21
  • 1970-01-01
相关资源
最近更新 更多