unidad una permisos modificar google dar copiar compartir compartido compartida como carpeta archivos archivo agregar acl chef vagrant

acl - permisos - ¿Puedo modificar la propiedad de una carpeta compartida en vagabundo?



copiar carpeta compartida google drive (4)

@ john-syrinek

en 1.2+

config.vm.synced_folder "src/", "/srv/website", owner: "root", group: "root"

http://docs.vagrantup.com/v2/synced-folders/basic_usage.html

Uso vagabundo y chef para desarrollar mi propio blog en una máquina virtual. Para tener un acceso fácil a la carpeta wordpress, creé una carpeta compartida.

Básicamente, la carpeta wordpress está en mi host y se monta como una carpeta compartida en / var / www / wordpress en la máquina virtual. La configuración es similar a:

config.vm.share_folder "foo", "/guest/path", "/host/path"

Mi problema es que la propiedad en mi máquina virtual siempre es vagrant:vagrant incluso si la cambio en mi host. Los cambios de propiedad en la VM son ignorados.

No puedo usar chown para establecer la propiedad del directorio de carga en www-data:www-data .

Es posible usar chmod y cambiar las restricciones de acceso a 777 , pero este es un hack realmente feo.

Esto es lo que realmente quiero. ¿Es posible?:

  • Desarrollo: acceso a la carpeta compartida desde mi host.
  • Restricción de acceso: en la máquina virtual, todos los archivos y carpetas deben tener restricciones de acceso y propiedad adecuadas y seguras.

Como @StephenKing sugiere que puede cambiar las opciones de todo el directorio.

La función relevante no está documentada, pero la fuente nos dice:

# File ''lib/vagrant/config/vm.rb'', line 53 def share_folder(name, guestpath, hostpath, opts=nil) @shared_folders[name] = { :guestpath => guestpath.to_s, :hostpath => hostpath.to_s, :create => false, :owner => nil, :group => nil, :nfs => false, :transient => false, :extra => nil }.merge(opts || {}) end

Básicamente puede establecer group, owner y acl para toda la carpeta, lo que es mucho mejor que configurar todo en World Writeable en el host. No he encontrado ningún método para cambiar la propiedad de un directorio anidado.

Aquí hay una solución rápida:

config.vm.share_folder "v-wordpress", "/var/www/wordpress", "/host/path", :owner => "www-data", :group => "www-data"


Puedes permitir cambiar la propiedad dentro del invitado:

config.vm.share_folder "foo", "/guest/path", "/host/path", {:extra => ''dmode=777,fmode=777''}


Siguiendo los consejos de @StephenKing y @aycokoster, tuve un caso de uso para montar otro directorio de solo lectura.

yo añadí

config.vm.share_folder "foo", "/guest/path", "/host/path", :extra => ''ro''

y

# discard exit status because chown `id -u vagrant`:`id -g vagrant` /host/path is okay vagrant up || true