2012-06-04 9 views
8

Mi dispiace chiedere questo qui, ma ho provato serverfault e non ho avuto risposta per 4 giorni.Montare la cartella condivisa (vbox) come un altro utente

La domanda relativa lì: https://serverfault.com/questions/394197/mount-shared-folder-vbox-as-another-user


Domanda:

Sto cercando di montare il mio vbox cartella condivisa ogni volta il mio ubuntu (10.04) si avvia.

Così, ho aggiunto una voce/etc/init con questo:

description  "mount vboxsf Desktop" 

start on startup 

task 
exec mount -t vboxsf Desktop /var/www/shared 

sembra funzionare, se non per il fatto che tutti i file sono di proprietà di "root", e non ho permesso di scrivere sulla cartella (né chmod né chown sembrano funzionare).

Quindi, come posso fare in modo che tutti i file presenti in questa cartella condivisa appartengano a www-data user/group?


PS .: La ragione principale per me avere una cartella condivisa automatica, è così posso creare/modificare i file dall'host sulla cartella GUEST www.

Se avete un'idea migliore per questo, invece di condividere la cartella, è stato libero di dire.

risposta

19

Beh, mentre facevo un altro problema correlato con la mia cartella condivisa, ho finito per arrivare a questa domanda StackOverflow: Shared folder in VirtualBox for Apache

Mi ha aiutato in 2 modi, e sembra che quello che mi serve sono quelli uid e gid opzioni.

Così, per montare una cartella condivisa come un altro utente, vorrei correre:

mount -t vboxsf SHARE_NAME /some/dir -o uid=48,gid=48 

Inoltre, per vedere quali sono i tuoi www-data s' gid e uid, basta eseguire id www-data.

Se hai bisogno anche di modificare i permessi sui file montati, basta aggiungere "dmode" per le opzioni, come:

sudo mount -t vboxsf SHARE_NAME-o rw,dmode=777,gid=GROUP_ID,uid=USER_ID /path/on/guest 

Le opzioni disponibili sono (da aiuto mount s'):

rw   mount read write (default) 
ro   mount read only 
uid  =<arg> default file owner user id 
gid  =<arg> default file owner group id 
ttl  =<arg> time to live for dentry 
iocharset =<arg> i/o charset (default utf8) 
convertcp =<arg> convert share name from given charset to utf8 
dmode  =<arg> mode of all directories 
fmode  =<arg> mode of all regular files 
umask  =<arg> umask of directories and regular files 
dmask  =<arg> umask of directories 
fmask  =<arg> umask of regular files 

E se ne avete bisogno per eseguire durante l'init di sistema, basta creare un file su /etc/init/SOMETHING.conf, con qualcosa di simile:

description  "SOME DESCRIPTION" 

start on startup 

task 
exec mount -t vboxsf YOUR_SHARE_NAME /path/on/guest -o uid=1000,gid=33 
+3

Ho provato molto fino a quando ho scoperto che 'SHARE_NAME' è solo il semplice nome di divisione che ho definito nelle mie impostazioni di VirtualBox, senza il percorso'/media/... 'poi ha funzionato;) – rubo77

+0

Per qualche motivo questo non è un soluzione permanente nella mia VM Debian. Ho sempre bisogno di ri-digitare il codice superiore dopo ogni riavvio. – Lanti