0

我正在使用带有 synced_folder 的 vagrant

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

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

4

1 回答 1

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,写入整个结构。不是很安全,但可以工作。

于 2021-12-13T15:13:13.273 回答