Pregunta:
Estoy usando Ubuntu en Virtual Box y tengo una carpeta que se comparte entre el host (Windows) y la VM (Ubuntu). Cuando abro cualquier archivo en la carpeta compartida en Ubuntu, no puedo cambiarlo ya que su propietario está configurado como root.
¿Cómo puedo cambiar la propiedad a mí mismo?
Aquí está la salida de ls -l
:
-rwxrwxrwx 1 root root 0 2012-10-05 19:17 BuildNotes.txt
La salida de df
es:
m@m-Linux:~/Desktop/vbox_shared$ df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda1 29640780 10209652 17925440 37% /
none 509032 260 508772 1% /dev
none 513252 168 513084 1% /dev/shm
none 513252 88 513164 1% /var/run
none 513252 0 513252 0% /var/lock
none 513252 0 513252 0% /lib/init/rw
Ubuntu 214153212 31893804 182259408 15% /media/sf_Ubuntu
/dev/sr0 53914 53914 0 100% /media/VBOXADDITIONS_4.2.0_80737
Ubuntu 214153212 31893804 182259408 15% /home/m/Desktop/vbox_shared
Las opciones en VM son automount y el readoly no está marcado.
/media/sf_Ubuntu
usar /media/sf_Ubuntu
, pero /media/sf_Ubuntu
un error de permiso:
m@m-Linux:/media$ ls -l
total 10
drwxrwx--- 1 root vboxsf 4096 2012-10-23 15:35 sf_Ubuntu
drwxrwx--- 2 root vboxsf 4096 2012-10-21 23:41 sf_vbox_shared
dr-xr-xr-x 6 m m 2048 2012-09-13 07:19 VBOXADDITIONS_4.2.0_80737
m@m-Linux:/media$ cd sf_Ubuntu/
bash: cd: sf_Ubuntu/: Permission denied
m@m-Linux:/media$ cd sf_vbox_shared/
bash: cd: sf_vbox_shared/: Permission denied
Tenga en cuenta que estoy en el grupo vboxsf
:
m@m-Linux:~$ id
uid=1000(m) gid=1000(m) groups=4(adm),20(dialout),24(cdrom),46(plugdev),105(lpadmin),119(admin),122(sambashare),1000(m),1001(vboxsf)
Respuesta:
La forma habitual de obtener acceso a los archivos ahora es permitir que VirtualBox /media/sf_directory_name
la carpeta compartida (lo que hará que aparezca en /media/sf_directory_name
) y luego agregar su usuario habitual de Ubuntu al grupo vboxsf
(como root #
) .
# usermod -aG vboxsf <youruser>
De forma predeterminada, sin acción manual, las monturas se ven así,
drwxrwx--- 1 root vboxsf 40960 Oct 23 10:42 sf_<name>
por lo que el grupo vboxsf
tiene acceso completo. Al agregar su usuario a ese grupo, obtiene acceso completo. Para que no se preocupe por cambiar sus permisos (lo que no tiene sentido en el host de Windows), simplemente se da acceso a sí mismo.
En este caso específico, esta es la carpeta compartida montada automáticamente,
Ubuntu 214153212 31893804 182259408 15% /media/sf_Ubuntu
y es ese directorio el que debe usarse para acceder a la carpeta compartida, colocando al usuario local en el grupo vboxsf
. Si desea un enlace "mejor" en el directorio de inicio de su usuario, siempre puede crear un enlace simbólico.
ln -s /media/sf_Ubuntu /home/m/Desktop/vbox_shared
Deberá reiniciar su máquina virtual para que estos cambios surtan efecto
Si monta manualmente la carpeta compartida, entonces necesita usar las opciones relevantes en el comando de mount
para configurar la carpeta con la propiedad correcta (es decir, las opciones gid, uid y umask para mount
). Esto se debe a que el sistema operativo host no admite el mismo sistema de permisos que Linux, por lo que VirtualBox no tiene forma de saber quién debería ser el propietario de los archivos.
Sin embargo, recomiendo encarecidamente configurar la carpeta compartida para que se monte automáticamente (es una configuración en la configuración de la carpeta compartida en VirtualBox).
Para evitar dudas, no creo que pueda cambiar los permisos normalmente de todos modos, en ese sistema de archivos si está montado de la forma habitual,
tony@jabba:/media/sf_name$ ls -l tst.txt
-rwxrwx--- 1 root vboxsf 2283 Apr 4 2012 tst.txt
tony@jabba:/media/sf_name$ sudo chown tony tst.txt
[sudo] password for tony:
tony@jabba:/media/sf_name$ ls -l tst.txt
-rwxrwx--- 1 root vboxsf 2283 Apr 4 2012 tst.txt
tony@jabba:/media/sf_name$