¿Cuál es la forma correcta de compartir directorios con Ubuntu ejecutándose en una máquina virtual de Virtual Box con los permisos correctos?

21

En VirtualBox, ¿cuál es la mejor manera de compartir un directorio entre un host OS X y Ubuntu? invitado?

  • Host: Mac OS X 10.7.3
  • Invitado: Ubuntu 12.04
  • El invitado tiene un directorio compartido montado a través de la configuración de VirtualBox con Acceso = Completo y Montaje automático = Sí .

El problema con esta configuración se ilustra a continuación. En mi directorio compartido, yo no puede cambiar los permisos en absoluto (no es un error de permisos denegados, pero simplemente no haga efecto).

Ubuntu 12.04 (invitado):

% ls -l
total 0
-rwxrwx--- 1 root vboxsf 0 Apr 17 21:56 1
-rwxrwx--- 1 root vboxsf 0 Apr 17 21:56 10
-rwxrwx--- 1 root vboxsf 0 Apr 17 21:56 2
-rwxrwx--- 1 root vboxsf 0 Apr 17 21:56 3
-rwxrwx--- 1 root vboxsf 0 Apr 17 21:56 4
-rwxrwx--- 1 root vboxsf 0 Apr 17 21:56 5
-rwxrwx--- 1 root vboxsf 0 Apr 17 21:56 6
-rwxrwx--- 1 root vboxsf 0 Apr 17 21:56 7
-rwxrwx--- 1 root vboxsf 0 Apr 17 21:56 8
-rwxrwx--- 1 root vboxsf 0 Apr 17 21:56 9

Mac OS X 10.7.3 (host):

$ ls -l
total 0
-rw-r--r--  1 <my-mac-user>  staff  0 Apr 17 21:56 1
-rw-r--r--  1 <my-mac-user>  staff  0 Apr 17 21:56 10
-rw-r--r--  1 <my-mac-user>  staff  0 Apr 17 21:56 2
-rw-r--r--  1 <my-mac-user>  staff  0 Apr 17 21:56 3
-rw-r--r--  1 <my-mac-user>  staff  0 Apr 17 21:56 4
-rw-r--r--  1 <my-mac-user>  staff  0 Apr 17 21:56 5
-rw-r--r--  1 <my-mac-user>  staff  0 Apr 17 21:56 6
-rw-r--r--  1 <my-mac-user>  staff  0 Apr 17 21:56 7
-rw-r--r--  1 <my-mac-user>  staff  0 Apr 17 21:56 8
-rw-r--r--  1 <my-mac-user>  staff  0 Apr 17 21:56 9

Si modifico al invitado, nada cambia:

% chmod +x 1 | ls -l 1 # guest
-rwxrwx--- 1 root vboxsf 0 Apr 17 21:56 1

Si modifico en el host, cambia en el host pero no en el invitado:

$ chmod +x 1 | ls -l 1 # host
-rwxrwx--x  1 <my-mac-user>  staff  0 Apr 17 21:56 1

% ls -l 1 # guest
-rwxrwx--- 1 root vboxsf 0 Apr 17 21:56 1
    
pregunta jmdeldin 18.04.2012 - 04:11

8 respuestas

21

¡Lo he descubierto!

Para reproducir:

  1. Apague la VM, agregue carpetas compartidas en la configuración de VBox (Permanente = Sí, montaje automático = No)
  2. Iniciar la VM
  3. Desde una terminal, ejecute umask && id como el usuario normal para obtener algo como esto:

    002 # this is your umask
    uid=1000(luser) gid=1000(luser) groups=1000(luser),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),109(lpadmin),124(sambashare),125(vboxsf)
    
  4. sudo mkdir -p /media/sf_src # src is the shared directory

Para montar el directorio src como una prueba:

sudo mount.vboxsf -o umask=002,gid=1000,uid=1000 src /media/sf_src 
                           |   |        |        |   |-> where to mount
                           |   |        |        |       the file
                           |   |        |        |-> name of the shared dir
                           |   |        |            (in VBox settings)
                           |   |        |
                           \   |        /
                        from the 'id' command

Para montarlo automáticamente al iniciar sesión, edite /etc/fstab y agregue lo siguiente:

src /media/sf_src vboxsf umask=002,gid=1000,uid=1000
    
respondido por el jmdeldin 18.04.2012 - 15:17
3

El problema: problemas de permisos en vbox / ubuntu al acceder a una unidad compartida OSX

joe_public@joe_public-ubuntu-VirtualBox:/$ ls /media/sf_shared
ls: cannot open directory /media/sf_shared: Permission denied

El objetivo es una forma sencilla de compartir directorios entre entornos Mac y Ubuntu. Desafortunadamente, los ejemplos que he visto hasta ahora parecen ser un poco más complejos de lo que realmente deben ser, y realmente no explican cuál es el problema real que necesita ser resuelto. Intentaré manejar ambos problemas aquí.

El entorno aquí es una Mac con OSX 10.9.5, con Virtual Box 4.3.16 ejecutando Ubuntu-14.04.1 con extensiones Guest instaladas. Cosas de septiembre de 2014

Creo que todo el problema aquí es que el uid de los directorios en la Mac y en Ubuntu debe coincidir: los gid predeterminados asignados para el usuario y los grupos son diferentes entre OSX y Ubuntu, y ahí es donde yace el problema.

Para acceder a un archivo, uno debe ser el propietario o ser un miembro del grupo que lo posee. Y como el acceso en realidad se basa en el número de identificación del grupo, no en el nombre del grupo, todo lo que se necesita es crear un número de grupo común en ambos lados, al que pertenecen los usuarios.

Eso es exactamente lo que hace la solución a continuación. No se deje engañar por la longitud de lo que está escrito, en realidad es muy simple. Hay muchos y muchos ejemplos de lo que está pasando.

Voy a pasar entre las consolas OSX y VBOX aquí (mac y virtual-box / ubuntu) dentro de este documento: asegúrese de comprender qué ventana en.

Nota final: la solución que se muestra a continuación se basa en establecer una identificación de grupo común entre los entornos OSX y Ubuntu, para que los permisos de archivos funcionen. Puede haber otras soluciones más modernas. Este es realmente simple y comprensible, y se ejecuta en instalaciones básicas sin adornos.

OSX: -----

Tenga en cuenta que se hizo de forma totalmente nueva 10.9.5 Mac, sin nada en ella, no conectado a una red corporativa, nada elegante ejecutándose aparte del software. Esto es tan simple como se pone.

Cuando hice la instalación predeterminada en Mac, joe_public es el usuario administrador, y su uid se estableció en 501 .

Joes-MacBook-Pro:/ joe_public$ id
uid=501(joe_public) gid=20(staff) groups=20(staff),999(vboxsf),401(com.apple.sharepoint.group.1),12(everyone),61(localaccounts),79(_appserverusr),80(admin),81(_appserveradm),98(_lpadmin),501(access_bpf),33(_appstore),100(_lpoperator),204(_developer),398(com.apple.access_screensharing),399(com.apple.access_ssh)

Tenga en cuenta que uid es 501 : esta es la primera identificación de cuenta predeterminada en OSX, nada especial

Creé algunos directorios que quiero compartir en el lado de Mac: tenga en cuenta que no los puse en mi directorio de usuario por razones de respaldo.

Joes-MacBook-Pro:/ joe_public$ mkdir /vdisk
Joes-MacBook-Pro:/ joe_public$ mkdir /vdisk/shared
Joes-MacBook-Pro:/ joe_public$ mkdir /vdisk/public 
Joes-MacBook-Pro:/ joe_public$ mkdir /vdisk/images

Joes-MacBook-Pro:vdisk joe_public$ ls -al
total 0
drwxr-xr-x   5 joe_public  admin   170 Oct  8 01:08 .
drwxrwxr-t  36 root        admin  1292 Oct  6 02:26 ..
drwxrwxrwx   2 joe_public  admin    68 Oct  6 01:08 images
drwxr-xr-x   3 joe_public  admin   102 Oct  8 01:07 public
drwxrwxrwx   4 joe_public  admin   136 Oct  8 00:45 shared

VBOX: ------

Instalación virtual predeterminada de ubuntu y ubuntu - nuevamente, joe_public es el administrador predeterminado creado cuando instalé ubuntu.

Tenga en cuenta una vez más, que el espacio de nombre entre el OSX y Ubuntu es completamente diferente. No hay absolutamente ninguna relación entre los dos nombres aquí.

joe_public@joe_public-ubuntu-VirtualBox:/media/sf_shared$ id
uid=1000(joe_public) gid=1000(joe_public)   groups=1000(joe_public),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),108(lpadmin),124(sambashare)

Creó tres puntos de montaje, usando la configuración de Virtual Box - & gt; Carpetas compartidas gui.

Name      Path              Auto-mount  Access
images    /vdisk/images     Yes         Full
public    /vdisk/pubic      Yes         Read-only
shared    /vdisk/shared     Yes         Full

NOTA: en realidad tuve que reiniciar mi sesión para que aparezcan todos estos puntos de montaje.

joe_public@joe_public-ubuntu-VirtualBox:~$ mount | grep vboxsf
shared on /media/sf_shared type vboxsf (gid=999,rw)
public on /media/sf_public type vboxsf (gid=999,rw)
images on /media/sf_images type vboxsf (gid=999,rw)

Observe que el valor de gid para estos es 999 - este es el grupo vboxsf .

joe_public@joe_public-ubuntu-VirtualBox:~$ grep 999 /etc/group
vboxsf:x:999

Esto fue asignado automáticamente por Virtual Box versión 4.3.16 para nosotros. La documentación de vbox muestra formas de cómo cambiar esto si monta la ruta manualmente a través de la línea de comandos, pero quién lo recordará: simplemente tome los valores predeterminados que la GUI nos impone.

Pero no funciona (se espera en este punto, eso es lo que estamos tratando de resolver)

joe_public@joe_public-ubuntu-VirtualBox:/$ ls /media/sf_shared
ls: cannot open directory /media/sf_shared: Permission denied

Tenga en cuenta que en este momento joe_public no es miembro de ese vboxsf grupo, y eso será un problema hasta que lo solucionemos. FYI: estos son los grupos predeterminados asignados a la cuenta cuando se crea.

joe_public@joe_public-ubuntu-VirtualBox:/media$ grep joe_public /etc/group
adm:x:4:syslog,joe_public
cdrom:x:24:joe_public
sudo:x:27:joe_public
dip:x:30:joe_public
plugdev:x:46:joe_public
lpadmin:x:108:joe_public
joe_public:x:1000:
sambashare:x:124:joe_public

Entonces, ¿qué tenemos en este punto? (No hemos hecho nada aún para solucionarlo)

•   On mac,   joe_public gid is 501
•   On linux, joe_public gid is 1000
•   On linux, vboxfs gid is 999
•   On mac,   vboxsf does not exist

No queremos cambiar el gid del usuario joe_public en ninguno de los lados, ya que eso es un problema en los sistemas ya instalados, y no resuelve esto para otros usuarios. La solución más simple es hacer una identificación de grupo coincidente - vboxsf - en el lado de la mac, y asegúrese de que joe_public sea miembro de ella en ambos lados.

Entonces, aún en vbox / ubuntu, haz joe_public miembro del grupo v 999 .

joe_public@joe_public-ubuntu-VirtualBox:/$ sudo usermod -a -G vboxsf joe_public
joe_public@joe_public-ubuntu-VirtualBox:/$ grep 999 /etc/group
vboxsf:x:999:joe_public

Creo que me desconecté de mi cuenta y volví a ingresar aquí después de hacer esto.

OSX: -----

Ahora necesitamos crear un grupo vboxsf en el mac. Dudo que el nombre realmente marque la diferencia aquí; es la identidad del grupo 999 lo que es importante. Recuerde que los espacios de nombre del sistema de directorio (así como los nombres de usuario) son diferentes entre el sistema operativo host y VM. Pero solo para que la vida esté sana, todos lo llamamos vboxsf en el mac.El mismo razonamiento por el cual joe_public utiliza un nombre de usuario en ambos lados.

OSX no tiene un comando simple de agregar grupo como lo hace linux, así que use el comando dscl para hacer esto en varios pasos. Consulte la documentación de mac os para obtener más detalles sobre esto. Tenga en cuenta que creamos el grupo vboxsf y agregamos joe_public a ese grupo aquí.

sudo dscl . -create /Groups/vboxsf
sudo dscl . -create /Groups/vboxsf name vboxsf
sudo dscl . -create /Groups/vboxsf passwd "*”
sudo dscl . -create /Groups/vboxsf gid 999
sudo dscl . -create /Groups/vboxsf GroupMembership joe_public

Entonces, en este punto, deberíamos tener

•   On mac, joe_public gid is 501
•   On linux, joe_public gid is 1000
•   On linux, vboxfs gid is 999
•   On mac, vboxsf gid is 999
•   On linux, joe_public is member of vboxsf 
•   On mac, joe_public is member of vboxsf

La prueba aquí es si funciona, así que ese es el siguiente paso

VBOX: ------

cd en nuestro directorio y toque un archivo

joe_public@joe_public-ubuntu-VirtualBox:/$ cd /media/sf_shared
joe_public@joe_public-ubuntu-VirtualBox:/media/sf_shared$ touch foo

Compruebe que hemos creado un archivo correctamente.

joe_public@joe_public-ubuntu-VirtualBox:/media/sf_shared$ ls -al
total 4
drwxrwx--- 1 root vboxsf  102 Oct  8 00:44 .
drwxr-xr-x 5 root root   4096 Oct  8 00:30 ..
-rwxrwx--- 1 root vboxsf    0 Oct  8 00:44 foo

OSX: -----

Joes-MacBook-Pro:shared joe_public$ cd /vdisk/shared
Joes-MacBook-Pro:shared joe_public$ ls -al
total 0
drwxrwxrwx  3 joe_public  vboxsf  102 Oct  8 00:44 .
drwxr-xr-x  6 joe_public  admin   204 Oct  8 00:17 ..
-rw-r--r--  1 joe_public  vboxsf    0 Oct  8 00:44 foo

Joes-MacBook-Pro:shared joe_public$ touch bar
Joes-MacBook-Pro:shared joe_public$ ls -al
total 0
drwxrwxrwx  4 joe_public  vboxsf  136 Oct  8 00:45 .
drwxr-xr-x  6 joe_public  admin   204 Oct  8 00:17 ..
-rw-r--r--  1 joe_public  vboxsf    0 Oct  8 00:45 bar

VBOX: ------

joe_public@joe_public-ubuntu-VirtualBox:/media/sf_shared$ ls -al
total 4
drwxrwx--- 1 root vboxsf  136 Oct  8 00:45 .
drwxr-xr-x 5 root root   4096 Oct  8 00:30 ..
-rwxrwx--- 1 root vboxsf    0 Oct  8 00:45 bar
-rwxrwx--- 1 root vboxsf    0 Oct  8 00:44 foo

Todo parece estar funcionando ...

VBOX: ------ VERIFICACIÓN FINAL

Lo que estamos revisando aquí es que todo esto depende de que el usuario joe_public sea miembro del grupo vboxsf , y la forma más simple es simplemente eliminar joe_public del grupo

Eliminando usuario joe_public del grupo vboxsf

joe_public@joe_public-ubuntu-VirtualBox:~$ sudo gpasswd -d joe_public vboxsf
log out/in ubuntu

Ver si podemos acceder a nuestro directorio, y no podemos, y esto prueba que es un problema de permiso grupal

joe_public@joe_public-ubuntu-VirtualBox:/$ ls /media/sf_shared
ls: cannot open directory /media/sf_shared: Permission denied

Añadir usuario de nuevo a vboxsf

joe_public@joe_public-ubuntu-VirtualBox:/$ sudo usermod -a -G vboxsf joe_public
log out/in ubuntu

¡Funciona de nuevo!

joe_public@joe_public-ubuntu-VirtualBox:~$ ls -al /media/sf_shared
total 4
drwxrwx--- 1 root vboxsf  170 Oct  8 01:48 .
drwxr-xr-x 6 root root   4096 Oct  8 01:25 ..
-rwxrwx--- 1 root vboxsf    0 Oct  8 00:45 bar
-rwxrwx--- 1 root vboxsf    0 Oct  8 00:44 foo

VBOX: - UN PROBLEMA MÁS - enlaces simbólicos en vbox -------

Si ingresas a / media / sf_shared , verás que los enlaces simbólicos en los directorios compartidos simplemente no funcionan. Este es un problema realmente grande si intenta configurar un entorno de desarrollo de Linux completo en una unidad compartida.

joe_public@joe_public-ubuntu-VirtualBox:/media$ cd sf_images
joe_public@joe_public-ubuntu-VirtualBox:/media/sf_images$ ls
joe_public@joe_public-ubuntu-VirtualBox:/media/sf_images$ mkdir test
joe_public@joe_public-ubuntu-VirtualBox:/media/sf_images$ ln -s test test2
ln: failed to create symbolic link ‘test2’: Read-only file system

De manera predeterminada, los enlaces simbólicos no son compatibles con los recursos compartidos virtuales. Vea abajo para explicaciones. Básicamente, tal como lo entiendo, los enlaces simbólicos son un agujero de seguridad que se "arreglaron" en Virtual Box al deshabilitar el soporte para ellos en el marco de tiempo 4.1.8 (2011). Estoy ejecutando 4.3.16 aquí ...

enlace

enlace

Afortunadamente, hay una puerta trasera para volver a habilitarlo, a través del comando VBoxManage del Host. Como siempre, entienda los agujeros de seguridad que puede estar abriendo. Estoy en una máquina de desarrollo independiente, así que esto no parece ser un problema.

OSX: ------------

Joes-MacBook-Pro:shared pbradstr$ VBoxManage setextradata Ubuntu VBoxInternal2/SharedFoldersEnableSymlinksCreate/shared 1   

Nota: Ubuntu es el nombre de mi vm, y compartido es el nombre del directorio compartido.

Puedes obtener el nombre vm así:

Joes-MacBook-Pro:shared pbradstr$ VBoxManage list vms
"Ubuntu" {8461045a-1cee-4d44-8148-05920a47cee0}
Joes-MacBook-Pro:shared pbradstr$

Y el nombre de las carpetas compartidas, ya sea a través de la interfaz gráfica de Virtual Box o

Joes-MacBook-Pro:shared pbradstr$ VBoxManage showvminfo Ubuntu | grep -A 5 "Shared folders"
Shared folders:  

Name: 'shared', Host path: '/vdisk/shared' (machine mapping), writable
Name: 'public', Host path: '/vdisk/public' (machine mapping), readonly
Name: 'images', Host path: '/vdisk/images' (machine mapping), writable

Reinicié todo el sistema de cuadro virtual aquí, no encontré el requisito mínimo para que lo tome.

De todos modos, para probar esto, regrese a su ventana de vbox

VBOX: ---------

joe_public@joe_public-ubuntu-VirtualBox:/media/sf_images$ ln -s test test2

Ningún error - y para verificar

joe_public@joe_public-ubuntu-VirtualBox:/media/sf_shared$ ls -ald test*
drwxrwx--- 1 root vboxsf 102 Oct  8 11:33 test
lrwxrwx--- 1 root vboxsf   4 Oct  8 13:10 test2 -> test

OSX: ----------

Y de vuelta en el lado de mac, solo para probar que todo funciona

Joes-MacBook-Pro:shared pbradstr$ ln -s test test3
Joes-MacBook-Pro:shared pbradstr$ ls -ald test*
drwxr-xr-x  4 joe_public  admin  136 Oct  8 13:20 test
lrwxr-xr-x  1 joe_public  admin    4 Oct  8 13:10 test2 -> test
lrwxr-xr-x  1 joe_public  admin    4 Oct  8 13:21 test3 -> test

Tenga en cuenta que solo probé esto en un host OSX y en un cliente de caja virtual Ubuntu. Las referencias que enumeré anteriormente parecían indicar que podría haber un problema al ejecutar un host basado en Windows.

EJERCICIO IZQUIERDO PARA EL ESTUDIANTE -------

El beneficio del método mencionado anteriormente es que puede ejecutarse en una máquina autónoma, sin acceso a la red. Pero si piensa en esto, este problema de nombre-versos-id tiene que ser un problema común entre cualquier entorno informático heterogéneo.

¿Qué otras soluciones están disponibles donde las soluciones a ese problema están disponibles? - Cosas como Active Directory (un producto de Microsoft) y similares podrían ser capaces de resolver esto. Sería interesante obtener una colección de esas soluciones y comparar allí diversas características y compensaciones.

    
respondido por el pbradstr 08.10.2014 - 10:23
3

¡Desde VirtualBox v4.0, es fácil resolver estos problemas de permisos! No necesita preocuparse por mkdir , mount , chmod , umask , etc. Para acceder a sus carpetas compartidas montadas automáticamente (que aparecen en /media con sf_ prefijos por defecto), solo hay una cosa que debe hacer: Agregue su nombre de usuario al grupo vboxsf a través de sudo usermod -a -G vboxsf [username] .

Para su comodidad, también puede crear enlaces simbólicos a esas carpetas compartidas dentro de su carpeta home (por ejemplo, ln -s /media/sf_Stuff ~/Stuff ).

Fuente (que he confirmado en mi propio uso de VirtualBox en Mac OS X 10.11): enlace

    
respondido por el theDrake 02.11.2015 - 03:43
3

Para mí, todo lo que tenía que hacer era:

sudo adduser [username] vboxsf

Eso fue suficiente para tener acceso a las carpetas compartidas. La carpeta tiene un grupo de vboxsf, el usuario solo necesita ser asignado a ese grupo para obtener acceso. Si necesita establecer un acceso más estricto o un acceso más controlable, es posible que deba seguir los pasos para montarlo manualmente con userid-s correctos.

Para mí, la solución de fstab no funcionó y la máquina no arrancó correctamente.

    
respondido por el Kris Avi 25.04.2016 - 08:35
2

Después de crear una carpeta compartida en la configuración de Virtualbox, Ubuntu la instalará automáticamente la próxima vez que inicie el sistema (verá un ícono en su escritorio).

Pero si no está utilizando la cuenta de root, no tendrá permiso para acceder a ella. Lo que debe hacer es agregar su cuenta de usuario a un grupo de usuarios llamado 'vboxsf':

sudo usermod -G vboxsf -a <username>

Luego cierre la sesión e inicie sesión de nuevo. Ahora puede acceder a la carpeta compartida.

    
respondido por el realhu 24.03.2016 - 15:36
0

Encontré esto, probé y funcionó en Ubuntu y Xubuntu, solo la función automount no funcionó para mí

I. Instalar Guest Additions

En primer lugar, es necesario instalar las Adiciones de invitado de VirtualBox al sistema host:

Elija en el menú de VitualBox: Dispositivos - & gt; Instalar Guest Additions ...

Monta un nuevo ISO para el sistema host.     Aparece un nuevo CD en Ubuntu (o montarlo). Ejecute como root la secuencia de comandos de instalación VBoxLinuxAdditions-x86.run (porque es una Mac basada en Intel) en una ventana de Terminal:

cd /media/cdrom
sudo VBoxLinuxAdditions-x86.run

Probablemente se le pedirá que reinicie Ubuntu.

Instalar Guest Additions tiene muchas ventajas, como la resolución de pantalla (el tamaño de la ventana es la resolución del sistema, es decir, sin barras de desplazamiento), el modo de mouse fácil (no es necesario presionar el botón de comando izquierdo para soltar el cursor del mouse) y estamos buscando, carpetas compartidas.

II. Crear carpeta compartida

El objetivo es acceder a una carpeta compartida, lo que es una manera más fácil que utilizar sshd o Samba.

Elija en el menú de VitualBox: Dispositivos - & gt; Carpetas compartidas ...

  • Haz clic en el botón Agregar nueva carpeta compartida.
  • Elija una Ruta de carpeta: una carpeta en su disco duro de Mac, p. ej. / Users / ondrej / Imágenes.
  • Elija un Nombre de carpeta: un nombre que identifica esta carpeta compartida en Ubuntu (como sistema host), p. imágenes.
  • Seleccione Hacer permanente: si desea mantener esta definición de carpeta compartida.
  • Haz clic en Aceptar.
  • Haga clic en Aceptar para cerrar la lista de carpetas compartidas.

III. Monte la carpeta compartida

Monta la carpeta compartida creada en una carpeta con permisos para tu usuario. Vamos a abrir una ventana de Terminal en Ubuntu y:

Crea una carpeta donde se montará la carpeta compartida. (Omita este paso si ya tiene una carpeta para esto).

mkdir DIR

por ej. (en / tmp)

mkdir share

Obtenga su usuario uid:

id

El resultado será algo así como:

uid=1000(ondrej)gid=1000(ondrej)groups=4(adm),20(dialout),24(cdrom),
46(plugdev),112(lpadmin),119(admin),120(sambashare),1000(ondrej)

para que mi usuario sea 1000   Monte la carpeta compartida SHARED_FOLDER_NAME en la carpeta MOUNTED_FOLDER con propiedad para el usuario con uid USER_ID como raíz:

sudo mount -t vboxsf -o uid=USER_ID SHARED_FOLDER_NAME MOUNTED_FOLDER

por ejemplo,

sudo mount -t vboxsf -o uid=1000 pictures /tmp/share

Especificar el parámetro uid permite escribir en la carpeta compartida para su usuario.   La carpeta montada MOUNTED_FOLDER (por ejemplo, / tmp / share) contiene archivos de la carpeta compartida en su disco duro de Mac. También es posible escribir en la carpeta compartida.   Opcionalmente, una carpeta compartida se puede montar automáticamente en el inicio de la máquina virtual.   Agregue la siguiente línea al archivo / etc / fstab (como raíz, por ejemplo, sudo vim / etc / fstab):

SHARED_FOLDER_NAME /PATH/TO/MOUNTED/FOLDER vboxsf uid=1000,gid=1000 0 0

por ejemplo,

pictures /tmp/share vboxsf uid=1000,gid=1000 0 0

donde los valores de uid y gid se pueden encontrar en la salida del comando id (ver el paso 2 para un ejemplo detallado).   La carpeta compartida estará disponible también después de reiniciar la máquina virtual.

Fuente: enlace

    
respondido por el Jesus 04.11.2014 - 19:15
0

Sistema operativo host : macOS
Sistema operativo VM (invitado) : Ubuntu Server 16.04.5 LTS
VirtualBox v5.2.18
Tanto el sistema operativo host como el sistema operativo invitado deben tener el mismo usuario (más adelante en el texto: nombre de usuario ).

Etapa 1: Instalar VirtualBox Guest Additions :

1.1. Ubique las Adiciones de invitados de VirtualBox,

$ cd /Applications/VirtualBox.app/Contents/MacOS/
$ cp VBoxGuestAdditions.iso ~/Downloads/

1.2. Inicie la VM

1.3. Haga clic en el icono del CD en la barra de tareas inferior derecha

1.4. Seleccione "Elegir imagen de disco ..." y busque el VBoxGuestAdditions.iso

1.5. En el tipo de terminal de invitado (también puede hacer esto desde el terminal de host si tiene SSH):

$ sudo su
$ apt update
$ apt upgrade
$ apt-get install dkms build-essential linux-headers-generic gcc make
$ mount /dev/cdrom /mnt
$ cd /mnt
$ sh ./VBoxLinuxAdditions.run
$ reboot

Etapa 2: Configuración de carpetas compartidas:

2.1. Crear reglas en VM:

  • Detener la VM
  • Ir a Settings > Shared Folders
  • Haga clic en el botón verde Add new port forwarding rule en la esquina superior derecha de la ventana.
  • Busque y seleccione la carpeta que desea compartir (por ejemplo, / ruta / a / carpeta compartida / host )
  • Seleccione las opciones Auto-mount y Make Permanent
  • Iniciar la VM

2.2. Para montar la carpeta compartida en /opt , debe crear la subcarpeta shared_folder_dir y configurar los permisos adecuados para ello:

$ sudo mkdir -p /opt/shared_folder_dir
$ sudo chmod ug+w -Rv /opt/shared_folder_dir
$ sudo chown username:username -Rv /opt/shared_folder_dir

2.3. Agregue nombre de usuario al vboxsf grupo:

$ sudo adduser username vboxsf
$ sudo usermod -a -G vboxsf username

2.4. Reinicie VM para aplicar cambios:

$ sudo reboot

Etapa 3: montaje automático host_folder en /opt/shared_folder_dir :

3.1. Cambiar el /etc/rc.local de la VM:

$ sudo nano /etc/rc.local

y coloque el siguiente derecho sobre exit 0 :

# 'folder_name' = given in the shared folders configuration
# 'path/to/shared/folders' = guest path to access the shared folders from
# 'id' = prints uid/gid
# sudo mount -t vboxsf -o uid={uid},gid={gid} {shared_folder_name} {path/to/shared/folder}
sleep 5
sudo mount -t vboxsf -o uid=1000,gid=1000 host_folder /opt/shared_folder_dir
exit 0
<<< EOF >>>
  

Nota:   He agregado sleep 5 para ejecutar la operación de montaje después de que se haya iniciado VirtualBox Guest Additions. Puede verificarlo por journalctl -b command.

3.2. Reinicie VM para aplicar cambios:

$ sudo reboot

Ver también

    
respondido por el Ukr 22.08.2018 - 08:47
-1

De enlace

# usermod -aG vboxsf user

El comando anterior dará acceso a la carpeta compartida para "usuario".

    
respondido por el Utkarsh Naiknaware 27.11.2015 - 07:47

Lea otras preguntas en las etiquetas