如何在流浪盒中与rsync同步时更改所有者或组?

时间:2017-03-07 16:30:19

标签: vagrant rsync vagrant-windows

目前,我在Drupal-VM(Windows上的Vagrant + Virtual Box)上安装Drupal时遇到了权限问题。我正在与rsync同步,这会导致同步文件和文件夹的所有者和群组vagrant。由于apache正在与用户www-data一起运行,因此无法将文件写入sites/default/files所拥有的公共临时文件夹vagrant:vagrant中。这就是我尝试将同步文件组更改为www-data的原因。我该如何做到这一点?

我的环境

Vagrant 1.9.1
VirtualBox 5.1.14 r112924

我的操作系统

Microsoft Windows [版本10.0.14393]

摘要

我已经在config.yml中尝试了以下设置:

vagrant_synced_folders: - local_path: C:\#\myproject destination: /var/www/myproject.dev type: rsync create: true options_override: group: www-data

vagrant_synced_folders: - local_path: C:\#\myproject destination: /var/www/myproject.dev type: rsync create: true group: www-data

这些不会在vagrant reload之后生效。当我检查.vagrant/machines/mydrupalvmbox/virtualbox/syncedfolders group仍然是vagrant时。更改此临时文件中的组并执行vagrant rsync会生成rsynced文件和目录的正确组。但在vagrant reload之后,这些临时设置消失了,而组vagrant又回来了。

我还尝试通过rsync_args更改群组但没有成功:

vagrant_synced_folders: - local_path: C:\#\myproject destination: /var/www/myproject.dev type: rsync create: true options_override: rsync__args: [ "--verbose", "--archive", "--delete", "--chmod=gu=rwX,o=rX", "--group", # required for the following command "--groupmap=*:www-data" ]

我收到错误:Error: rsync: --groupmap=*:www-data: unknown option

那么正确的设置是什么?

2 个答案:

答案 0 :(得分:1)

您正在运行哪个版本的rsync

版本3.1.0中包含groupmap选项(请参阅https://rsync.samba.org/ftp/rsync/src/rsync-3.1.0-NEWS

- Added the --usermap/--groupmap/--chown options for manipulating file
  ownership during the copy.

升级您的rsync版本(如果您正在使用cygwing,升级cygwin / rsync)并确保您获得最新版本

rsync --version

答案 1 :(得分:0)

Drupal VM中,您必须在rsync__group内使用options_override

vagrant_synced_folders:
  - local_path: C:\#\myproject
  // [...]
  options_override:
    rsync__group: www-data

请参阅相关问题:https://github.com/geerlingguy/drupal-vm/issues/1199

这也可能适用于其他流浪者盒子。