usuario usa una todos tabla siguientes propietario propiedad permisos para los especifico dar cuál comandos carpetas carpeta cambiar archivos archivo centos virtualization virtualbox chmod vagrant

centos - usa - tabla de permisos linux



No se pueden cambiar los permisos de las carpetas dentro de la carpeta de inicio vagabunda (7)

Cambie los permisos del host, no del invitado. VirtualBox no permite cambiar permisos en archivos compartidos de un sistema operativo invitado.

TLDR; El problema no es que los usuarios de su invitado no tengan permisos para acceder a sus archivos de host. El problema es que el usuario que ejecuta el proceso de virtaul box en su host no tiene permisos para escribir los archivos en el host. Hay dos conjuntos de permisos. Los permisos de invitado deben establecerse como cualquier otro sistema operativo. También debe asegurarse de que el proceso de cuadro virtual en el que se ejecuta su invitado tenga permisos para esa carpeta. Si ese proceso solo tiene acceso de lectura, lo máximo que cualquier usuario invitado podrá hacer es leer.

Cuando me meto en mi vagabundo virtual, puedo cambiar los permisos de los archivos y las carpetas de arriba y fuera de la carpeta de usuario vagabundo, y para los archivos dentro de la carpeta de usuario vagabundo. Pero no puede cambiar los permisos para las carpetas en la carpeta de usuario vagabundo. Tengo el mismo problema si inicié sesión como el usuario vago y la raíz.

¿Existe algún tipo de restricción para cambiar los permisos en la carpeta del usuario vagabundo? La carpeta de usuario vagabundo no se comparte con el sistema operativo host, pero sí la carpeta de implementación capistrano y docRoot.

Invitado es CentOS 6, el anfitrión es OS X 10.7. Vagrant es 1.0.5. Virtualbox es 4.2.1.


El formato para carpetas compartidas cambia en diferentes versiones de Vagrant. Ver la respuesta de Fabio https://serverfault.com/questions/398414/vagrant-set-default-share-permissions

Vagrant versión 1.3.1 y anterior

config.vm.share_folder "v-data", "/export", "/export", :owner => ''vagrant'', :group => ''httpd'', :extra => ''dmode=775,fmode=775''

Vagrant versión 1.3.1, 1.3.2

En Vagrant 1.3.1 y posterior, la opción extra ha sido reemplazada por mount_options que espera una matriz.

config.vm.share_folder "v-data", "/export", "/export", :owner => ''vagrant'', :group => ''httpd'', :mount_options => [''dmode=775'', ''fmode=775'']

Versión Vagrant> = 1.3.3

En el vagabundo 1.3.3 aparece que config.vm.share_folder ha sido reemplazado por config.vm.synced_folder .

config.vm.synced_folder "v-data", "/export", "/export", :owner => ''vagrant'', :group => ''httpd'', :mount_options => [''dmode=775'', ''fmode=775'']


En Vagrant 1.2.7, se utilizan archivos Vagrant de la versión 2, por lo que la sintaxis es ligeramente diferente de las respuestas anteriores. Debajo está el truco para mí con CentOS 6.2. Encuentro que usar una ruta relativa como la fuente funciona mejor en mi situación. Apunta a la carpeta compartida.

config.vm.synced_folder "./", "/vagrant", owner: ''vagrant'', group: ''apache'', extra: ''dmode=775,fmode=775''

Como afirma Jamie, aún es necesario que lo configure antes de la creación, así que utilice una vagrant reload después de haber editado su archivo Vagrant.


Mi problema podría estar relacionado con el tuyo.

Tengo un centos vm en vagabundo como invitado y win7 como anfitrión.

En realidad, no puedo cambiar los permisos en la VM de las carpetas que se comparten con el Host.

informará si descubro algo útil. Discute sobre el grupo de google aquí:

https://groups.google.com/forum/?fromgroups=#!topic/vagrant-up/2JvcoZTuWRI

ACTUALIZACIÓN 1: También he leído que no puede crear enlaces simbólicos en carpetas compartidas.

ACTUALIZACIÓN 2: parece que no puedo cambiar los permisos en el cuadro virtual después de haber sido creado. Sin embargo, en VagrantFile puede establecer los permisos en las carpetas compartidas en algo que las suites: IE

config.vm.share_folder "v-data", "/export", "/export", :owner=> ''vagrant'', :group=>''httpd'', :extra => ''dmode=775,fmode=775''

aquí he establecido el propietario, el grupo y los permisos que funcionan para nosotros.

Espero que esto ayude.


Para Vagrant 1.7.2 Editar archivo Vagrant como este,

group: sync_group, owner: sync_owner, mount_options: [''dmode=777'', ''fmode=776'']


Todavía no puedo comentar, pero extender la respuesta de MDeSilva para el Vagrant 1.7.2:

Puede ser obvio para algunos, pero el grupo y el propietario deben estar entre comillas.

group: "sync_group", owner: "sync_owner", mount_options: [''dmode=777, fmode=776'']


VirtualBox no permite cambiar el propietario / permisos para las carpetas sincronizadas.

Puede cambiarlo en el archivo Vagrant (como respondieron otros).
Considere cambiar el propietario en lugar del grupo.
Considere también que, si se hace para que su servidor pueda escribir en los archivos, es probable que su servidor se llame www-data en lugar de httpd. Use ps aux | grep nginx ps aux | grep nginx [o apache / lighthttpd] para verificar.

Hay algunas otras opciones:

  • Cambie el propietario del programa que está accediendo a los archivos compartidos en lugar de la carpeta sincronizada.
    Por ejemplo, si PHP necesita escribir en un archivo, cambie el servidor y PHP para que se ejecute como vagabundo. [En Apache, eso se hace en httpd.conf. El usuario de NGINX está configurado en nginx.conf, el usuario de php-fpm está en php-fpm.conf o uno de los archivos que incluye.
    Necesita cambiar los permisos en el archivo de bloqueo de Apache (/ var / lock / apache2) o en el archivo de websocket de PHP (/var/run/php5-fpm.sock)] y en el servidor web.
  • Use una VM diferente (HyperV, VMware) en lugar de VirtualBox. Otras máquinas virtuales no parecen tener esta restricción.
  • Usa RSyn para sincronizar archivos en lugar de usar la sincronización predeterminada.
    config.vm.synced_folder "/var/www/", type: "rsync"
  • Establezca todos los permisos en 777. Normalmente esto sería desastroso y ni siquiera una sugerencia. Todavía es una mala idea, pero en una VM es posible. Piénselo dos veces antes de dar acceso compartido.
    config.vm.synced_folder "/var/www/", mount_options: ["dmode=777", "fmode=666"]

Estas respuestas están mejor descritas por Ryan Sechreset y Jeremy Kendall .