Používám Ubuntu na Virtual Box a mám složku, která je sdílena mezi hostitelem (Windows) a VM (Ubuntu). Když otevřím jakýkoli soubor ve sdílené složce v Ubuntu, nemůže změnit, protože jeho vlastník je nastaven na root.
Jak mohu změnit vlastnictví na sebe?
Zde je výstup ls -l
:
-rwxrwxrwx 1 root root 0 2012-10-05 19:17 BuildNotes.txt
Výstup df
je:
[email protected]:~/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
Možnosti v VM je automaticky připojeno a readoly není zaškrtnuta).
Pokusil se použít /media/sf_Ubuntu
, ale zobrazuje se chyba povolení:
[email protected]:/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
[email protected]:/media$ cd sf_Ubuntu/
bash: cd: sf_Ubuntu/: Permission denied
[email protected]:/media$ cd sf_vbox_shared/
bash: cd: sf_vbox_shared/: Permission denied
Upozorňujeme, že jsem ve skupině vboxsf
:
[email protected]:~$ 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)
Pravidelným způsobem, jak získat přístup k souborům nyní, je umožnit VirtualBoxu automatické sdílení sdílené složky (což způsobí, že se zobrazí pod /media/sf_directory_name
) a poté přidejte běžného uživatele Ubuntu do skupiny vboxsf
(jako root #
).
# usermod -aG vboxsf <youruser>
Ve výchozím nastavení bez ručního zásahu vypadají úchyty takto,
drwxrwx--- 1 root vboxsf 40960 Oct 23 10:42 sf_<name>
takže skupina vboxsf
má plný přístup. Přidáním uživatele do této skupiny získáte plný přístup. Neměli byste se tedy obávat, že změníte svá oprávnění (což na hostiteli Windows nedává smysl), stačí jen dát přístup.
V tomto konkrétním případě se jedná o automatickou sdílenou složku,
Ubuntu 214153212 31893804 182259408 15% /media/sf_Ubuntu
a je to ten adresář, který by měl být použit pro přístup ke sdílené složce umístěním místního uživatele do skupiny vboxsf
. Pokud chcete „lepší“ odkaz pod domovským adresářem uživatele, můžete vždy vytvořit symbolický odkaz.
ln -s /media/sf_Ubuntu /home/m/Desktop/vbox_shared
Pokud sdílenou složku připojíte ručně, musíte použít příslušné možnosti v příkazu mount
a nastavit složku se správným vlastnictvím (tj. Volby gid, uid a umask na mount
) . Důvodem je, že hostitelský operační systém nepodporuje stejný systém oprávnění jako Linux, takže VirtualBox nemá způsob, jak zjistit, kdo by měl tyto soubory vlastnit.
I důrazně proto doporučujeme nakonfigurovat sdílenou složku tak, aby byla automaticky připojena (je to nastavení konfigurace sdílené složky v samotném VirtualBoxu).
[email protected]:/media/sf_name$ ls -l tst.txt
-rwxrwx--- 1 root vboxsf 2283 Apr 4 2012 tst.txt
[email protected]:/media/sf_name$ Sudo chown tony tst.txt
[Sudo] password for tony:
[email protected]:/media/sf_name$ ls -l tst.txt
-rwxrwx--- 1 root vboxsf 2283 Apr 4 2012 tst.txt
[email protected]:/media/sf_name$
Tento krok vám umožní přístup k určitému adresáři na vašem počítači Windows Host z hostujícího terminálu Linux. V tomto příkladu bude název sdílené složky z pohledu OVB vshare (což je výchozí), úplná cesta k adresáři k OS Windows (hostitelský OS) bude „C:\var \“ a úplná cesta k souboru pro přístup z hosta vm bude "/ tulák". Nakonec jméno uživatele, který umožní plný přístup ke čtení a zápisu, bude „vy“.
# how-to add a shared folder on the Host
VBoxManage sharedfolder add "Host-name" -name "vshare" -hostpath "C:\var" -automount
Nainstalujte požadavky na přidání hosta zadáním následujícího příkazu:
Sudo apt-get install -y build-essential make gcc linux-headers-$(uname -r)
linux-headers-generic make linux-source linux-generic linux-signed-generic
Nepoužívejte soubor .iso ke stažení a spuštění instalačního programu odtud - jednoduše to nebude fungovat !!!
Sudo apt-get install virtualbox-guest-dkms
Nakonfigurujte sdílený adresář tak, aby se automaticky spouštěl při zavádění vm přidáním následujících řádků na konec vašeho souboru/etc/fstab (všimněte si conf "vshare" a uid = 10001):
/media/sf_vshare /vagrant vboxsf bind,uid=10001,rw,umask=0000 0 0
# eof file: /etc/fstab
# mount
Sudo mount -a
Sudo usermod -G vboxsf -a you
Restartujte vm a přihlaste se pomocí ssh, abyste ověřili sdílení souborů.
# ssh to the vm
ssh [email protected]
# check as yourself that you have access
find /vagrant
Právě jsem měl stejný problém se sdílenou složkou Win-Ubuntu a způsob, jakým jsem to vyřešil, byl přidání uživatele do skupiny vboxsf, úprava souboru/etc/group. Doufám, že to funguje pro vás. Tady dole najdete krátkou schému, jak jsem soubor editoval
(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.
Měl jsem stejný problém a vyřešil jsem instalaci nejnovější verze VirtualBox Guest Adds; v mém případě byl upgrade z 4.3.8 na 4.3.10.
Po dokončení instalace neměla složka / media/sf_name žádné další "root" jako vlastníka skupiny, ale "vboxsf" byla správná.
Vyzkoušeli jste sudo?
$Sudo chown username filename
Pokud máte luxus ovládat možnosti příkazu mount (například pokud připojujete ručně nebo pomocí /etc/fstab
) můžete použít -o uid=771
možnost k připojovacímu příkazu.
Záznam v /etc/fstab
by vypadalo
scanresults /data/scanresults vboxsf uid=771 0 0
Po upgradu hostujícího systému je třeba znovu nainstalovat doplňky virtuální schránky. Problém je, myslím, při upgradování některých komponent v Ubuntu, některé komponenty se změnily, po instalaci vb-adds bude sf_forlder_name přístupná. Můj problém byl tímto způsobem vyřešen. Pisuovo řešení funguje.