Problemas de permissão de arquivo com pastas compartilhadas em Virtual Box (Ubuntu Guest, Windows Host)

88

Estou usando o Ubuntu no Virtual Box e tenho uma pasta que é compartilhada entre o host (Windows) e a VM (Ubuntu). Quando eu abro qualquer arquivo na pasta de compartilhamento no Ubuntu, eu não posso mudá-lo como seu dono é definido como root.

Como posso alterar a propriedade para mim mesmo?

Aqui está a saída de ls -l :

-rwxrwxrwx 1 root root 0 2012-10-05 19:17 BuildNotes.txt

A saída de df é:

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

As opções na VM são automount e a readoly não é verificada.

Tentou usar /media/sf_Ubuntu , mas recebeu um erro de permissão:

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

Por favor, note que estou no 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)
    
por user654019 23.10.2012 / 14:03

8 respostas

141

A forma normal de obter acesso aos arquivos agora é permitir que o VirtualBox monte automaticamente a pasta compartilhada (o que a fará aparecer em /media/sf_directory_name ) e depois adicionar seu usuário regular do Ubuntu ao grupo vboxsf ( como root # ).

# usermod -aG vboxsf <youruser>

Por padrão, sem ação manual, as montagens são assim,

drwxrwx--- 1 root vboxsf 40960 Oct 23 10:42 sf_<name>

para que o grupo vboxsf tenha acesso total. Ao adicionar seu usuário a esse grupo, você obtém acesso total. Assim, você não se preocuparia em alterar suas permissões (o que não faz sentido no host do Windows), você apenas se dá acesso.

Neste caso específico, esta é a pasta compartilhada montada automaticamente

Ubuntu               214153212  31893804 182259408  15% /media/sf_Ubuntu

e é esse diretório que deve ser usado para acessar a pasta compartilhada, colocando o usuário local no grupo vboxsf . Se você quiser um link "melhor" no diretório inicial do usuário, sempre poderá criar um link simbólico.

ln -s /media/sf_Ubuntu /home/m/Desktop/vbox_shared

Você precisará reinicializar sua VM para que essas alterações entrem em vigor

Se você montar manualmente a pasta compartilhada, precisará usar as opções relevantes no comando mount para definir a pasta com a propriedade correta (ou seja, as opções gid, uid e umask como mount ). Isso ocorre porque o sistema operacional host não suporta o mesmo sistema de permissões do Linux, portanto, o VirtualBox não tem como saber quem deve possuir os arquivos.

No entanto, eu recomendo strongmente apenas configurar a pasta compartilhada para ser montada automaticamente (é uma configuração na configuração de pasta compartilhada no próprio VirtualBox).

Para evitar dúvidas, não acredito que você possa alterar as permissões normalmente de qualquer maneira, nesse sistema de arquivos se ele estiver montado da maneira normal,
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$ 
    
por 23.10.2012 / 14:42
2

Eu tive o mesmo problema e resolvi instalar a última versão do VirtualBox Guest Additions ; no meu caso estava atualizando de 4.3.8 para 4.3.10.

Quando a instalação foi concluída, a pasta / media / sf_name não tinha mais "root" como proprietário do grupo, mas "vboxsf" como correta.

    
por 19.04.2014 / 16:04
2

Acabei de ter o mesmo problema com minha pasta compartilhada Win-Ubuntu, e a maneira como resolvi isso foi adicionar meu usuário ao grupo vboxsf, editando o arquivo / etc / group. Espero que funcione para voce. Aqui você pode encontrar um pequeno esquema de como eu editei o arquivo

(edit /etc/group)
...
...
...
pulse:x:119:
pulse-access:x:120:
utempter:x:121:
rtkit:x:122:
saned:x:123:
openquake:x:1000:
sambashare:x:124:openquake,luisa
vboxsf:x:999:openquake,luisa   ##This is the line I add my user
postgres:x:125:
rabbitmq:x:126:
celery:x:500:
luisa:x:1001:

Luisa.

    
por 24.12.2014 / 17:38
1

Já experimentou o sudo?

$sudo chown username filename
    
por 23.10.2012 / 14:23
1

Se você tiver o luxo de controlar as opções para o comando mount (por exemplo, se montando manualmente ou usando /etc/fstab ), você pode usar a opção -o uid=771 para o comando mount.

Uma entrada em /etc/fstab seria parecida com

scanresults    /data/scanresults    vboxsf    uid=771    0 0
    
por 02.01.2017 / 16:27
1

Habilitar acesso de leitura e gravação completos a uma pasta compartilhada em um host Windows de um convidado do Ubuntu para um usuário Linux não raiz

Esta etapa permitirá que você acesse uma determinada pasta na sua máquina host Windows a partir do terminal de convidado do Linux. Neste exemplo, o nome do compartilhamento da perspectiva do OVB será vshare (que é o padrão), o caminho completo do diretório para o sistema operacional Windows (o sistema operacional host) será "C: \ var \" eo caminho completo do arquivo para acessá-lo a partir do convidado vm será "/ vagrant" e, finalmente, o nome do usuário para habilitar o acesso total rea / write será "você".

 # how-to add a shared folder on the host
 VBoxManage sharedfolder add "host-name" -name "vshare" -hostpath "C:\var" -automount

1. Instale os pré-requisitos Adições para Convidados

Instale os pré-requisitos do Guest Additions emitindo o seguinte comando:

 sudo apt-get install -y build-essential make gcc  linux-headers-$(uname -r) 
 linux-headers-generic make linux-source  linux-generic linux-signed-generic

2. Instalar as adições de convidado

Não use o arquivo .iso para baixar e o instalador de lá - ele simplesmente não funcionará !!!

sudo apt-get install virtualbox-guest-dkms 

3. Mude o seu para o diretório de compartilhamento para ser montado automaticamente em vm boot

Mude o seu para o diretório de compartilhamento para ser montado automaticamente no vm boot adicionando as seguintes linhas no final do seu arquivo fstab (observe o conf "vshare" e o uid = 10001):

/media/sf_vshare /vagrant vboxsf bind,uid=10001,rw,umask=0000 0 0
# eof file: /etc/fstab 

4. adicione-se ao grupo vboxsf

Você precisa se adicionar ao grupo vboxsf para poder editar como não-raiz de seus arquivos vm em sua máquina host.     # mount     sudo mount -a

sudo usermod -G vboxsf -a you 

5. reinicie e verifique

Reinicialize a vm e faça o login via ssh para verificar o compartilhamento de arquivos.     # ssh para a vm     ssh you @ host-name

# check as yourself that you have 
find /vagrant
    
por 07.09.2017 / 16:59
0

As adições à caixa virtual precisam ser instaladas novamente após o upgrade do sistema convidado. O problema, eu acho, é quando você atualiza alguns componentes no Ubuntu, alguns componentes são alterados, depois de instalar o vb-additions, o sf_forlder_name estará acessível. Meu problema resolvido por este caminho. A solução de Pisu funciona.

    
por 18.05.2014 / 07:23
-2
  • Desmontar compartilhamentos como root
  • Faça as alterações necessárias com chown e chmod
  • reinicialize e registre os compartilhamentos com os devidos direitos
por 12.02.2015 / 15:20