vagrant 同步文件夹子目录所有者

Posted

技术标签:

【中文标题】vagrant 同步文件夹子目录所有者【英文标题】:vagrant synced folder sub directory owner 【发布时间】:2019-07-26 04:15:20 【问题描述】:

我正在使用带有 synced_folder 的 vagrant

development.vm.synced_folder "/usr/local/src/www", "/var/www", owner: "www-data", group: "www-data"

有没有办法改变 /var/www 的子目录的所有者,比如 /var/www/images?

【问题讨论】:

【参考方案1】:

显然是一个很晚的答案,但对于 Vagrant 和某些挂载类型来说,这种行为仍然是正确的。文档为安装所有者设置说明了这一点

owner (string) - 应该是此同步文件夹所有者的用户。默认情况下,这将是 SSH 用户。部分同步文件夹类型不支持修改所有者

这里:https://www.vagrantup.com/docs/synced-folders/basic_usage#owner

这意味着在许多情况下,我们需要做一些解决方法来授予写入权限,但不涉及更改所有者。如果它是一个开发环境,也许你可以是一个小 YOLO,并授予对目录中所有文件/文件夹的写权限

绝对仅用于开发/测试的凌乱快速修复

sudo chmod -R 1777 /var/www/images

更简洁的方法是使用“查找”来仅更改目录

find /var/www/images -type d -exec chmod 755  \;

同样,仅用于开发/测试

编辑

也许最简单的解决方法是在挂载选项中为整个 webroot 设置权限。

config.vm.synced_folder "./", "/var/www/example.com", type: "virtualbox", owner: "vagrant", group: "vagrant", mount_options: ["fmode=776"]

上述代码仍将用户 Vagrant 作为所有者,但允许所有用户,包括 www-data,写入整个结构。不是很安全,但可以工作。

【讨论】:

以上是关于vagrant 同步文件夹子目录所有者的主要内容,如果未能解决你的问题,请参考以下文章

Vagrant 1.9.5:设置默认同步文件夹的权限

加快 Vagrant 上主机和来宾之间的同步延迟(NFS 同步文件夹)

Vagrant 共享/同步文件夹权限

Vagrant 共享和同步文件夹

Vagrant 同步文件夹上的 Composer 错误

有没有办法在Vagrant中同步子文件夹?