Qual è il modo corretto di condividere le directory con Ubuntu in esecuzione in una Virtual Box VM con le autorizzazioni corrette?

21

In VirtualBox, qual è il modo migliore per condividere una directory tra un host OS X e Ubuntu ospite?

  • Host: Mac OS X 10.7.3
  • Ospite: Ubuntu 12.04
  • Guest ha una directory condivisa montata tramite le impostazioni di VirtualBox con Access = Full e Auto-Mount = Yes .

Il problema con questa configurazione è illustrato di seguito. Nella mia directory condivisa, I non è possibile modificare le autorizzazioni (non un errore di autorizzazioni negato, ma loro solo non avere effetto).

Ubuntu 12.04 (guest):

% 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

Se chmod sul guest, nulla cambia:

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

Se chmod sull'host, cambia sull'host ma non sul guest:

$ 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
    
posta jmdeldin 18.04.2012 - 06:11

8 risposte

21

L'ho capito!

Per riprodurre:

  1. Chiudi la VM, aggiungi cartelle condivise nelle impostazioni di VBox (Permanente = Sì, Auto-Mount = No)
  2. Avvia la VM
  3. Da un terminale, esegui umask && id come utente normale per ottenere qualcosa di simile a questo:

    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

Per montare la directory src come test:

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

Per montarlo automaticamente all'accesso, modifica /etc/fstab e aggiungi quanto segue:

src /media/sf_src vboxsf umask=002,gid=1000,uid=1000
    
risposta data jmdeldin 18.04.2012 - 17:17
3

Il problema: problemi di autorizzazione in vbox / ubuntu che accedono a un'unità condivisa OSX

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

L'obiettivo è un modo semplice per condividere directory tra ambienti Mac e Ubuntu. Sfortunatamente gli esempi che ho visto finora sembrano essere un po 'più complessi di quanto non debbano essere realmente, e non spiegano veramente quale sia il vero problema da risolvere. Cercherò di gestire entrambi questi problemi qui.

L'ambiente qui è un Mac con OSX 10.9.5, con Virtual Box 4.3.16 che esegue Ubuntu-14.04.1 con estensioni Guest installate. Roba di settembre 2014

Penso che l'intero problema qui sia che il uid delle directory su Mac e in Ubuntu deve corrispondere - Il gid predefinito assegnato per utente e i gruppi sono diversi tra OSX e Ubuntu, e è lì che sta il problema.

Per accedere a un file, è necessario possederlo o essere un membro del gruppo che lo possiede. E poiché l'accesso è in realtà basato sul numero id del gruppo, non sul nome del gruppo, tutto ciò che è necessario è creare un numero di gruppo comune su entrambi i lati, a cui appartengono gli utenti.

Questo è esattamente ciò che fa la soluzione sottostante. Non essere fuorviato dalla lunghezza di ciò che è stato scritto, in realtà è molto semplice. Ci sono solo un sacco di esempi su cosa sta succedendo.

Scorrerò tra le console OSX e VBOX qui (mac e virtual-box / ubuntu) all'interno di questo documento - assicurati di aver capito in quale finestra a.

Nota finale: la soluzione illustrata di seguito si basa sulla creazione di un ID di gruppo comune tra gli ambienti OSX e Ubuntu, in modo che le autorizzazioni del file funzionino. Potrebbero esserci altre soluzioni più moderne. Questo è davvero semplice e comprensibile, e funziona su installazioni semplici e disadorne.

OSX: -----

Si noti che è stato fatto su un Mac 10.9.5 appena uscito dalla scatola, senza nulla su di esso, non connesso a una rete aziendale, senza nulla di elaborato su di esso oltre al software di magazzino. Questo è semplice come si arriva.

Quando ho eseguito l'installazione predefinita su Mac, joe_public è l'utente amministratore e il suo uid è stato impostato su 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)

Tieni presente che uid è 501 - questo è il primo ID account predefinito su OSX - niente di speciale

Ho creato alcune directory che voglio condividere sul lato Mac - Si noti che non le ho inserite nella mia directory utente per motivi di backup.

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: ------

Installazione virtuale di Ubuntu e casella virtuale di default - di nuovo, joe_public è l'amministratore predefinito creato quando ho installato Ubuntu.

Si noti ancora una volta che lo spazio dei nomi tra OSX e Ubuntu è completamente diverso. Non c'è assolutamente alcuna relazione tra i due nomi qui.

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)

Crea tre punti di montaggio, utilizzando l'impostazione Virtual Box - & gt; Cartella condivisa gui.

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

NOTA: in realtà dovevo riavviare la mia sessione affinché tutti questi punti di montaggio venissero visualizzati.

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)

Si noti che il gid per questi è 999 - questo è il gruppo vboxsf .

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

Questo è stato assegnato automaticamente da Virtual Box versione 4.3.16 per noi. La documentazione di vbox mostra come cambiare la situazione se monti il ​​percorso manualmente attraverso la riga di comando, ma chi lo ricorderà - Prendi semplicemente i valori predefiniti che la GUI ci impone ..

Ma non funziona (atteso a questo punto - è quello che stiamo cercando di risolvere)

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

Nota che a questo punto joe_public non è membro del gruppo vboxsf e questo sarà un problema finché non lo risolviamo. Cordiali saluti: questi sono i gruppi predefiniti assegnati all'account quando viene creato.

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

Quindi quello che abbiamo a questo punto (non abbiamo ancora fatto nulla per risolverlo)

•   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

Non vogliamo cambiare il gid dell'utente joe_public su entrambi i lati, dato che è un rompicapo sui sistemi già installati e non risolve questo problema per altri utenti. La soluzione più semplice è creare un id di gruppo corrispondente - vboxsf - sul lato mac e assicurarsi che joe_public ne sia membro su entrambi i lati.

Quindi, ancora su vbox / ubuntu, rendi joe_public un membro del gruppo 999 vboxsf

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

Penso di essermi disconnesso dal mio account e di nuovo di nuovo qui dopo averlo fatto.

OSX: -----

Ora dobbiamo creare un gruppo vboxsf sul mac. Dubito che il nome faccia davvero la differenza qui: è l'id del gruppo 999 che è importante. Ricordare che gli spazi dei nomi dei sistemi di directory (così come i nomi utente) sono diversi tra l'host e i sistemi operativi della VM. Ma per rendere la vita sana, la chiamiamo vboxsf sul mac.Lo stesso ragionamento per cui joe_public viene utilizzato un nome utente su entrambi i lati.

OSX non ha un comando di gruppo semplice come fa Linux - quindi usa il comando dscl per fare ciò in più passaggi. Si prega di consultare la documentazione di Mac OS per maggiori dettagli su questo. Nota che creiamo il gruppo vboxsf e aggiungiamo joe_public a quel gruppo qui.

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

Quindi, a questo punto, dovremmo avere

•   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 dimostrazione qui è se funziona - quindi questo è il prossimo passo

VBOX: ------

cd nella nostra directory e tocca un file

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

Verifica che abbiamo creato un file con successo.

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

Sembra che tutto funzioni ...

VBOX: ------ VERIFICA FINALE

Quello che stiamo verificando qui è che tutta questa faccenda dipende dall'utente joe_public che fa parte del gruppo vboxsf - e il modo più semplice è semplicemente rimuovere joe_public dal gruppo

Rimozione utente joe_public dal gruppo vboxsf

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

Verifica se siamo in grado di accedervi nella nostra directory - e non possiamo, e ciò dimostra che si tratta di un problema di autorizzazione di gruppo

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

Aggiungi utente in vboxsf

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

Funziona di nuovo!

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 ALTRO PROBLEMA - collegamenti simbolici in vbox -------

Se vai in / media / sf_shared , scoprirai che i collegamenti simbolici nelle directory condivise semplicemente non funzionano. Questo è un grosso problema se si sta tentando di configurare un ambiente di sviluppo Linux completo su un'unità condivisa.

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

Per impostazione predefinita, i collegamenti simbolici non sono supportati sulle condivisioni di box virtuali. Vedi sotto per le spiegazioni. Fondamentalmente, a quanto ho capito, i link simbolici sono un buco di sicurezza che è stato "risolto" in Virtual Box disabilitando il supporto per loro nel periodo di tempo 4.1.8 (2011). Sto correndo 4.3.16 qui ...

link

link

Fortunatamente c'è una backdoor per riattivarla, tramite il comando VBoxManage dell'host. Come sempre, ti preghiamo di capire i buchi di sicurezza che potresti aprire. Sono su una macchina di sviluppo stand-alone, quindi questo non sembra essere un problema.

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

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

Nota: Ubuntu è il nome del mio VM e condiviso è il nome della directory condivisa.

Puoi ottenere il nome di vm in questo modo:

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

E il nome delle cartelle condivise, tramite la GUI della 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

Ho riavviato l'intero sistema di box virtuali qui, non ho capito il requisito minimo per farlo.

Ad ogni modo, per testare questo, torna alla finestra di vbox

VBOX: ---------

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

Nessun errore - e per verificare

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: ----------

E di nuovo sul lato mac - solo per dimostrare che tutto funziona

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

Si noti che l'ho provato solo su un host OSX e su un client di Ubuntu Virtual Box. I riferimenti che ho elencato sopra sembrano indicare che potrebbe esserci un problema nell'esecuzione di un host basato su Windows.

ESERCIZIO A SINISTRA DELLO STUDENTE -------

Il vantaggio del metodo sopra elencato è che può essere eseguito su una macchina stand-alone, senza accesso alla rete. Ma se ci pensate, questo problema di nome-versi-id deve essere un problema comune tra qualsiasi ambiente di calcolo eterogeneo.

Quali altre soluzioni sono disponibili dove sono disponibili soluzioni a questo problema? - Cose come Active Directory (un prodotto Microsoft) e simili potrebbero essere in grado di risolverlo. Sarebbe interessante ottenere una raccolta di tali soluzioni e confrontare le varie caratteristiche e compromessi.

    
risposta data pbradstr 08.10.2014 - 12:23
3

Sin da VirtualBox v4.0, è facile risolvere questi problemi di permessi! Non devi preoccuparti di mkdir , mount , chmod , umask , ecc. Per accedere alle tue cartelle condivise montate automaticamente (che appaiono in /media con sf_ prefissi di default), c'è solo una cosa che devi fare: Aggiungi il tuo nome utente al gruppo vboxsf tramite sudo usermod -a -G vboxsf [username] .

Per praticità, potresti anche voler creare collegamenti simbolici a quelle cartelle condivise all'interno della tua cartella home (ad esempio ln -s /media/sf_Stuff ~/Stuff ).

Source (che ho confermato nel mio uso personale di VirtualBox su Mac OS X 10.11): link

    
risposta data theDrake 02.11.2015 - 04:43
3

Per me tutto quello che dovevo fare era:

sudo adduser [username] vboxsf

Questo mi è bastato per ottenere l'accesso alle cartelle condivise. La cartella ha un gruppo di vboxsf, l'utente deve solo essere assegnato a quel gruppo per ottenere l'accesso. Se è necessario impostare un accesso più rigoroso o un accesso più controllabile, potrebbe essere necessario eseguire le fasi di montaggio manuale con userid di destra.

Per me la soluzione fstab non ha funzionato e ha causato il riavvio non corretto della macchina.

    
risposta data Kris Avi 25.04.2016 - 10:35
2

Dopo aver creato una cartella condivisa nelle impostazioni di Virtualbox, Ubuntu la monterà automaticamente al prossimo avvio del sistema (vedrai un'icona sul desktop).

Ma se non si utilizza l'account di root, non si avrà il permesso di accedervi. Quello che devi fare è aggiungere il tuo account utente a un gruppo di utenti chiamato "vboxsf":

sudo usermod -G vboxsf -a <username>

Quindi disconnettiti e accedi di nuovo. Puoi ora accedere alla cartella condivisa.

    
risposta data realhu 24.03.2016 - 16:36
0

Ho trovato questo, ho provato e ha funzionato in Ubuntu e Xubuntu, solo la funzione automount non ha funzionato per me

. Installa aggiunte guest

In primo luogo, è necessario installare le aggiunte guest di VirtualBox al sistema host:

Scegli nel menu di VitualBox: Dispositivi - & gt; Installa aggiunte guest ...

Monta una nuova ISO per il sistema host.     Un nuovo CD appare in Ubuntu (o lo monta). Esegui come root lo script di installazione VBoxLinuxAdditions-x86.run (perché è un Mac basato su Intel) in una finestra di Terminale:

cd /media/cdrom
sudo VBoxLinuxAdditions-x86.run

Probabilmente ti verrà chiesto di riavviare Ubuntu.

L'installazione delle aggiunte guest presenta molti vantaggi, come l'adozione della risoluzione dello schermo (la dimensione della finestra è la risoluzione del sistema, ovvero nessuna barra di scorrimento), la modalità mouse semplice (non è necessario premere il pulsante di comando sinistro per rilasciare il cursore del mouse) e stiamo cercando cartelle condivise.

II. Crea cartella condivisa

L'obiettivo è accedere a una cartella condivisa, che è un modo più semplice di usare sshd o Samba.

Scegli nel menu di VitualBox: Dispositivi - & gt; Cartelle condivise ...

  • Fai clic sul pulsante Aggiungi nuova cartella condivisa.
  • Scegli un percorso cartella: una cartella sul disco rigido del Mac, ad es. / Users / Ondrej / Immagini.
  • Scegli un nome cartella - un nome che identifica questa cartella condivisa in Ubuntu (come sistema host), ad es. immagini.
  • Seleziona Rendi permanente - se desideri mantenere questa definizione di cartella condivisa.
  • Fai clic su OK.
  • Fai clic su OK per chiudere l'elenco delle cartelle condivise.

III. Monta cartella condivisa

Monta la cartella condivisa creata in una cartella con le autorizzazioni per il tuo utente. Apriamo una finestra di terminale su Ubuntu e:

Crea una cartella in cui verrà montata la cartella condivisa. (Salta questo passaggio se hai già una cartella per questo.)

mkdir DIR

es. (in / tmp)

mkdir share

Ottieni il tuo utente uid:

id

Il risultato sarà qualcosa del tipo:

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

quindi uid del mio utente è 1000.   Monta la cartella condivisa SHARED_FOLDER_NAME nella cartella MOUNTED_FOLDER con proprietà per utente con uid USER_ID come root:

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

per es.

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

La specifica del parametro uid consente di scrivere nella cartella condivisa per il tuo utente.   La cartella montata MOUNTED_FOLDER (ad esempio / tmp / share) contiene i file dalla cartella condivisa sul disco rigido del Mac. È anche possibile scrivere nella cartella condivisa.   Facoltativamente, una cartella condivisa può essere montata automaticamente all'avvio della macchina virtuale.   Aggiungi la seguente riga al file / etc / fstab (come root, ad esempio sudo vim / etc / fstab):

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

per es.

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

dove i valori di uid e gid possono essere trovati nell'output del comando id (vedere il passo 2 per un esempio dettagliato).   La cartella condivisa sarà disponibile anche dopo il riavvio della macchina virtuale.

Fonte: link

    
risposta data Jesus 04.11.2014 - 20:15
0

Sistema operativo host : macOS
Sistema operativo VM (guest) : Server Ubuntu 16.04.5 LTS
VirtualBox v5.2.18
Sia il SO host che il SO guest devono avere lo stesso utente (più avanti nel testo: username ).

Fase 1: installa Addizioni guest VirtualBox :

1.1. Individua le aggiunte guest di VirtualBox,

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

1.2. Avvia la VM

1.3. Fai clic sull'icona del CD nella barra delle applicazioni in basso a destra

1.4. Seleziona "Scegli immagine disco ..." "e cerca VBoxGuestAdditions.iso

1.5. Nel tipo di terminale guest (puoi farlo anche dal terminale host se hai SSH dentro):

$ 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

Fase 2: installazione delle cartelle condivise:

2.1. Crea regole in VM:

  • Interrompi la VM
  • Vai a Settings > Shared Folders
  • Fai clic sul pulsante verde Add new port forwarding rule nella parte in alto a destra della finestra.
  • Cerca e seleziona la cartella che desideri condividere (ad es. / percorso / per / condiviso / host_folder )
  • Seleziona le opzioni Auto-mount e Make Permanent
  • Avvia la VM

2.2. Per montare la cartella condivisa su /opt devi creare shared_folder_dir sottocartella e impostare le autorizzazioni appropriate su di essa:

$ 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. Aggiungi username al gruppo vboxsf :

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

2.4. Riavvia VM per applicare le modifiche:

$ sudo reboot

Fase 3: montaggio automatico di host_folder in /opt/shared_folder_dir :

3.1. Cambia VM /etc/rc.local:

$ sudo nano /etc/rc.local

e posiziona come segue sopra 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:   Ho aggiunto sleep 5 per eseguire l'operazione di montaggio dopo sono state avviate le aggiunte guest di VirtualBox. Puoi verificarlo con il comando journalctl -b .

3.2. Riavvia VM per applicare le modifiche:

$ sudo reboot

Vedi anche

    
risposta data Ukr 22.08.2018 - 10:47
-1

Da link

# usermod -aG vboxsf user

Il comando sopra darà accesso alla cartella condivisa per "utente".

    
risposta data Utkarsh Naiknaware 27.11.2015 - 08:47

Leggi altre domande sui tag