Sanal Kutu VM'de çalışan Ubuntu ile dizinleri doğru izinlerle paylaşmanın doğru yolu nedir?


23

VirtualBox'ta bir OS X ana bilgisayarı ile Ubuntu konuğu arasında bir dizini paylaşmanın en iyi yolu nedir?

  • Ana bilgisayar: Mac OS X 10.7.3
  • Konuk: Ubuntu 12.04
  • Konuk, Access = Full ve Auto-Mount = Evet ile VirtualBox ayarları ile paylaşılan bir dizine sahiptir .

Bu kurulumdaki problem aşağıda gösterilmiştir. Paylaşılan dizinimde, izinleri hiçbir şekilde değiştiremiyorum (izinler reddedildi değil, ancak etkili değiller).

Ubuntu 12.04 (misafir):

% 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 (ana bilgisayar):

$ 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

Eğer konuğu dinlersem, hiçbir şey değişmez:

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

Ana bilgisayarda chmod yaparsam, ana bilgisayarda değiştirir ancak konukta değiştirmez:

$ 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

Ah, anladım ama cevabı bir 8 saat daha gönderemem (yeterli puan yok). Solüsyon yapmaktır sudo mount.vboxsf -o umask=002,gid=1000,uid=1000 src /media/sf_srcUmask değeridir, umaskkullanıcı, sıvısındaki ve gid gelmektedir id <user>, srcVBox payı adıdır ve /meida/sf_srcbağlama noktası arzu olduğunu.
jmdeldin

Yanıtlar:


23

Ben anladım!

Yeniden üretmek:

  1. Sanal Makineyi kapatın, VBox ayarlarına paylaşılan klasörler ekleyin (Kalıcı = Evet, Otomatik Montaj = Hayır)
  2. VM'yi başlatın
  3. Bir terminalden, umask && idböyle bir şey elde etmek için normal kullanıcı olarak çalıştırın :

    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

srcDizini bir test olarak bağlamak için :

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

Oturum açarken otomatik olarak bağlamak /etc/fstabiçin aşağıdakileri düzenleyin ve ekleyin:

src /media/sf_src vboxsf umask=002,gid=1000,uid=1000

Bu tam olarak aradığım şeydi! Apache2 ve takılı klasöre erişimi olan kullanıcılarım için paylaşılan bir kullanıcı grubu oluşturdum. serverfault.com/questions/6895/…
thesmart

Teşekkürler! Unutmayın ki /sbin/mount.vboxsfbunun sarkan bir bağlantı olduğunu keşfedene kadar büyük sorunlarım oldu! Silme ve sonra ln -s /opt/VBoxGuestAdditions-4.3.10/lib/VBoxGuestAdditions/mount.vboxsf /sbin/mount.vboxsfsorunu çözdü! Konukların ekleyeceği kurulum muhtemelen onu bağlayamadı. Ben harcanan kadar bu out endam çok fazla zaman!
01

2
... şimdi tek sorun vboxsf'ın sembolik bağlarla başa çıkmaması gibi görünüyor! Olduğu gibi, VM'den paylaşılan klasörde sembolik bağlantılar oluşturamazsınız! (En azından OSX, VirtualBox 4.3.10
csl

Bu prosedür kesinlikle sizi oraya götürmek için birkaç adımdan biridir. Ancak benim durumumda, paylaşılan dizine
geçip

4

Sorun - OSX paylaşımlı bir sürücüye erişen vbox / ubuntu'daki izin sorunları

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

Amaç, Mac ve Ubuntu ortamları arasındaki dizinleri paylaşmanın basit bir yoludur. Ne yazık ki şu ana kadar gördüğüm örnekler, olması gerekenden biraz daha karmaşık görünüyor ve çözülmesi gereken asıl sorunun ne olduğunu gerçekten açıklamıyor. Bu iki konuyu da burada ele almaya çalışacağım.

Buradaki ortam OSX 10.9.5 çalıştıran bir Mac'tir, Virtual Box 4.3.16, Konuk uzantıları yüklü halde Ubuntu-14.04.1 yürütür. Eylül 2014 şeyleri.

Sanırım buradaki tüm problem şu ki, kullanıcı kullanıcı ve gruplar için atanan varsayılan gid en OSX ve Ubuntu ve bu yılların sorun yatıyor arasındaki farklıdır - Mac dizinleri ve Ubuntu aynı olmalıdır.

Bir dosyaya erişmek için, birinin kendisine ait olması veya kendisine ait olan grubun bir üyesi olması gerekir. Erişim aslında grubun kimliğine göre değil, grup adına göre yapıldığından, gerekli olan tek şey kullanıcıların her iki tarafında da ortak bir grup numarası oluşturmaktır.

Bu tam olarak aşağıdaki çözümü yapar. Yazılanın uzunluğu kadar yanıltmayın, aslında çok basit. Neler olup bittiğine dair pek çok örnek var.

Bu dokümanda OSX ve VBOX konsolları arasında dolaşacağım (mac ve virtual-box / ubuntu) - bu pencerede hangi pencereyi açtığınızı anladığınızdan emin olun.

Son not: Aşağıda gösterilen çözüm, dosya izinlerinin çalışması için OSX ve Ubuntu ortamları arasında ortak bir grup kimliği oluşturmaya dayanmaktadır. Başka, daha modern çözümler olabilir. Bu, gerçekten basit ve anlaşılabilir ve basit süslenmemiş kurulumlarda çıplak kemiklerle çalışıyor.

OSX: —————

Bunun 10.9.5 Mac’in yeni bir kutusundan yapıldığını, üzerinde hiçbir şey bulunmadığını, bir şirket ağına bağlı olmadıklarını, üzerinde çalışan yazılımın stok yazılımı dışında herhangi bir şekilde çalışmadıklarını unutmayın. Bu olabildiğince basittir.

Mac'te varsayılan yüklemeyi yaptığımda, joe_public admin kullanıcısı ve onun kimliği 501 olarak ayarlandı .

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)

Bildirim o uid olan 501 - Bu OSX varsayılan ilk hesap id - Özel bir şey

Mac tarafında paylaşmak istediğim birkaç dizin oluşturdum. Notları, yedekleme nedenlerinden dolayı bunları kullanıcı dizinimin altına koymadığımı unutmayın.

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

Basit varsayılan sanal kutu ve ubuntu kurulumu - yine, joe_public ubuntu kurduğumda oluşturulan varsayılan yönetici.

Lütfen OSX ile Ubuntu arasındaki ad alanının tamamen farklı olduğunu bir kez daha unutmayın. Buradaki iki isim arasında kesinlikle bir ilişki yok.

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)

Sanal Kutu Ayarı -> Paylaşılan Klasörler gui kullanılarak üç montaj noktası oluşturuldu .

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

NOT: Aslında tüm bu bağlama noktalarının ortaya çıkması için oturumumu yeniden başlatmam gerekti.

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)

Bunlar için gid'in 999 olduğuna dikkat edin - bu vboxsf grubudur.

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

Bu bizim için Sanal Kutu sürüm 4.3.16 tarafından otomatik olarak atandı. Vbox belgeleri, yolu komut satırına elle bağlarsanız bunu nasıl değiştireceğinizin yollarını gösterir, ancak bunu kim hatırlayacak - Yalnızca GUI'nin bize uyguladığı varsayılanları kullanın.

Fakat işe yaramıyor (bu noktada beklenen - çözmeye çalıştığımız şey bu)

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

Bu noktada joe_public'in bu vboxsf grubunun bir üyesi olmadığını ve biz düzeltene kadar bu bir problem olacağını unutmayın. FYI: Bunlar oluşturulduğunda hesaba atanan varsayılan gruplardır.

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

Öyleyse bu noktada ne yaptık (düzeltmek için henüz bir şey yapmadık)

•   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

Joe_public kullanıcısının her iki tarafındaki yönünü değiştirmek istemiyoruz , bu zaten kurulu olan sistemlerdeki bir acıdır ve bunu diğer kullanıcılar için çözmez. En basit çözüm, mac tarafında eşleşen bir grup kimliği - vboxsf - yapmak ve joe_public'in her iki tarafta da üye olduğundan emin olmaktır .

Yani, hala vbox / ubuntu'da , joe_public'ü 999 vboxsf grubunun bir üyesi yap

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

Sanırım hesabımdan çıkış yaptım ve bunu yaptıktan sonra tekrar buraya girdim.

OSX: —————

Şimdi mac'ta bir vboxsf grubu oluşturmamız gerekiyor . İsmin aslında burada bir fark yarattığından şüpheliyim - bu 999 grup kimliği önemli. Dizin sistemi adı boşluklarının (kullanıcı adlarının yanı sıra) ana bilgisayar ve VM işletim sistemleri arasında farklı olduğunu lütfen unutmayın. Ama sadece hayatı aklı başında yapmak için hepimiz mac üzerinde vboxsf diyoruz . Aynı nedenle, joe_public her iki tarafta da bir kullanıcı adı kullanmaktadır.

OSX'te linux gibi basit bir grup ekleme komutu yoktur - bu yüzden bunu yapmak için dscl komutunu birkaç adımda kullanın. Bu konuda daha fazla ayrıntı için lütfen mac os belgelerine bakın. Vboxsf grubunu oluşturduğumuza ve bu gruba joe_public eklediğimize dikkat edin.

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

Yani, bu noktada, biz olmalıydı

•   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

Buradaki ispat işe yararsa - yani bir sonraki adım

VBOX: ——————

bizim dizin içine cd ve bir dosyaya dokunun

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

Bir dosyayı başarıyla oluşturduğumuzu kontrol edin.

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

Hepsi çalışıyor gibi görünüyor ..

VBOX: —————— NİHAİ DOĞRULAMA

Burada kontrol ettiğimiz şey, tüm bunların joe_public adlı kullanıcının vboxsf grubunun bir üyesi olmasına bağlı olmasıdır - ve en basit yol joe_public'i kaldırmaktır grubundan

Joe_public adlı kullanıcının vboxsf grubundan kaldırılması

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

Rehberimize erişip erişemediğimizi görmek - ve yapamayız ve bu da grup izin sorunu olduğunu kanıtlıyor

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

Kullanıcıyı tekrar vboxsf'a ekle

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

Yine çalışıyor!

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: - DAHA FAZLA SORUN - vbox sembolik bağları -------

Eğer / media / sf_shared'e girerseniz , paylaşılan dizinlerdeki sembolik bağların işe yaramadığını göreceksiniz. Paylaşılan bir sürücüde tam bir linux geliştirme ortamı oluşturmaya çalışıyorsanız, bu gerçekten büyük bir sorundur.

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

Varsayılan olarak, sembolik bağlantılar sanal kutu paylaşımlarında desteklenmez. Açıklamalar için aşağıya bakınız. Temelde anladığım kadarıyla, sembolik linkler, 4.1.8 zaman dilimi (2011) 'de kendilerine verilen desteği devre dışı bırakarak Sanal Kutu’da “sabitlenmiş” bir güvenlik deliğidir. 4.3.16 burda koşuyorum ...

https://www.virtualbox.org/ticket/10085

http://ahtik.com/blog/fixing-your-virtualbox-shared-folder-symlink-error/

Neyse ki, Host'un VBoxManage komutuyla tekrar etkinleştirmek için bir arka kapı var . Her zaman olduğu gibi, lütfen burada açmakta olduğunuz güvenlik deliklerini anlayın. Tek başına bir geliştirme makinesindeyim, bu yüzden bu bir sorun gibi görünmüyor.

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

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

Not: Ubuntu vm'nin adıdır ve paylaşılır. paylaşılan dizin adıdır.

Vm adını şöyle alabilirsiniz:

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

Ve paylaşılan klasörlerin adı, Sanal Kutu gui veya

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

Burada tüm sanal kutu sistemini yeniden başlattım, alması için minimum gereksinimi bulamadım.

Neyse, bunu test etmek için vbox penceresine geri dön.

VBOX: ---------

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

Hata yok - ve doğrulamak için

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

Mac tarafına geri döndüm - sadece işe yaradığını ispatlamak için

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

Lütfen, yalnızca bir OSX sunucusunda ve Ubuntu sanal kutu istemcisinde test ettiğime dikkat edin. Yukarıda listelediğim referanslar, Windows tabanlı bir ana bilgisayarı çalıştıran bir sorun olabileceğini gösteriyor gibi görünüyordu.

ÖĞRENCİ İÇİN SOL EGZERSİZ ———————

Yukarıda listelenen yöntemin yararı, ağ erişimi olmayan, bağımsız bir makinede çalışabilmesidir. Ancak bunun hakkında düşünürseniz, bu isim-ayetler-id konusu, herhangi bir heterojen bilgi işlem ortamı arasında ortak bir sorun olmak zorundadır.

Bu sorunun çözümlerinin mevcut olduğu başka hangi çözümler mevcut? - Active Directory (bir Microsoft ürünü) ve benzeri gibi şeyler bunu çözebilir. Bu çözümlerin bir koleksiyonunu elde etmek ve orada çeşitli özellikleri ve takasları karşılaştırmak ilginç olurdu.


3

Benim için tek yapmam gereken şeydi:

sudo adduser [username] vboxsf

Bu paylaşılan klasörlere erişmek benim için yeterliydi. Klasörde bir grup vboxsf bulunur, kullanıcının erişebilmesi için yalnızca o gruba atanması gerekir. Daha katı bir erişim veya daha fazla kontrol edilebilir bir erişim ayarlamanız gerekiyorsa, doğru kullanıcı kimliği ile el ile bağlama adımlarını uygulamanız gerekebilir.

Benim için fstab çözümü işe yaramadı ve makinenin doğru önyüklememesine neden oldu.


3

Virtualbox ayarlarında paylaşılan bir klasör oluşturduktan sonra, sistemi bir sonraki açışınızda Ubuntu otomatik olarak sizin için bağlar (masaüstünüzde bir simge göreceksiniz).

görüntü tanımını buraya girin

Ancak, kök hesabı kullanmıyorsanız, hesaba erişim izniniz olmayacaktır. Yapmanız gereken, kullanıcı hesabınızı 'vboxsf' adlı bir kullanıcı grubuna eklemek:

sudo usermod -G vboxsf -a $USER

Sonra çıkış yapıp tekrar giriş yapın. Paylaşılan klasöre şimdi erişebilirsiniz.


3

VirtualBox v4.0’dan bu yana, bu izinlerle ilgili sorunları çözmek kolaydır! Yaklaşık endişe gerekmez mkdir, mount, chmod, umask(görünmesine otomatik monte paylaşılan klasörlere erişmek için, vs. /mediaile sf_, yapmanız gereken tek şey var varsayılan olarak önekleri): için kullanıcı adınızı ekleyin vboxsfyoluyla grup sudo usermod -a -G vboxsf [username].

Kolaylık sağlamak için, homeklasörünüzdeki paylaşılan klasörlere sembolik bağlantılar oluşturmak da isteyebilirsiniz (örn ln -s /media/sf_Stuff ~/Stuff.).

Kaynak: http://www.virtualbox.org/manual/ch04.html#sf_mount_auto


Sembolik bağlantı hakkında güzel bir nokta.
Shaun Dychko,

0

Bunu buldum, test ettim ve Ubuntu ve Xubuntu'da çalıştı, sadece automount özelliği benim için işe yaramadı

I. Konuk Eklemeleri Yükleme

Öncelikle, VirtualBox'un Konuk Eklemelerini ana sisteme kurmak gerekir:

VitualBox'un menüsünden seçim yapın: Cihazlar -> Konuk Ekleme ...

Ana sistem için yeni bir ISO bağlar. Ubuntu'da yeni bir CD belirir (veya takın). Terminal penceresinde VBoxLinuxAdditions-x86.run kurulum komut dosyasını (Intel tabanlı bir Mac olduğu için) root olarak çalıştırın:

cd /media/cdrom
sudo VBoxLinuxAdditions-x86.run

Muhtemelen sizden Ubuntu'yu yeniden başlatmanız istenecektir.

Konuk Eklemelerini Kurmak, ekran çözünürlüğünü benimsemek (pencere boyutunuz sistem çözünürlüğü, yani kaydırma çubuğu yok), kolay fare modu (fare imlecini serbest bırakmak için sol komut düğmesine basmanıza gerek kalmaz) ve ne arıyoruz gibi birçok avantaja sahiptir. paylaşılan klasörler için.

II. Paylaşılan Klasör Oluştur

Amaç, sshd veya Samba kullanmaktan daha kolay bir yol olan paylaşılan bir klasöre erişmek.

VitualBox menüsünde: Cihazlar -> Paylaşılan Klasörler ...

  • Yeni paylaşılan klasör ekle düğmesine tıklayın.
  • Bir Klasör Yolu Seçin - Mac sabit sürücünüzdeki bir klasör, örn. / Kullanıcılar / ondrej / Resimler.
  • Bir Klasör Adı Seçin - bu paylaşımlı klasörü Ubuntu'da (bir ana bilgisayar sistemi olarak) tanımlayan bir isim, örneğin resimler.
  • Kalıcı Yap'ı seçin - bu paylaşılan klasör tanımına devam etmek istiyorsanız.
  • Tamam'a tıklayın.
  • Paylaşılan klasörlerin listesini kapatmak için Tamam'ı tıklayın.

III. Paylaşılan Klasörü Bağla

Oluşturulan paylaşılan klasörü, kullanıcının izinleri olan bir klasöre yerleştirin. Ubuntu'da bir Terminal penceresi açalım ve:

Paylaşılan klasörün monte edileceği bir klasör oluşturun. (Zaten bunun için bir klasörünüz varsa, bu adımı atlayın.)

mkdir DIR

örneğin (in / tmp)

mkdir share

Kullanıcı kimliğinizi alın:

id

Sonuç şöyle bir şey olacak:

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

bu yüzden benim kullanıcı kimliğim 1000'dir. Paylaşılan klasörü SHARED_FOLDER_NAME adlı klasörü kök olarak USER_ID kullanıcı kimliğine sahip olan MOUNTED_FOLDER klasörüne bağlayın:

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

Örneğin

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

Uid parametresini belirlemek, kullanıcı için paylaşılan klasöre yazmayı sağlar. Takılı klasör MOUNTED_FOLDER (örn. / Tmp / share) Mac sabit disk sürücünüzdeki paylaşılan klasördeki dosyaları içerir. Paylaşım klasörüne de yazmak mümkündür. İsteğe bağlı olarak, sanal makine başlangıcında otomatik olarak paylaşılan bir klasör monte edilebilir. / Etc / fstab dosyasına şu satırı ekleyin (root olarak, örneğin sudo vim / etc / fstab):

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

Örneğin

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

uid ve gid değerleri id komutunun çıktısında bulunabilir (detaylı örnek için 2. adıma bakınız). Paylaşılan klasör, sanal makinenin yeniden başlatılmasından sonra da kullanılabilir.

Kaynak: http://www.valibuk.net/2009/03/accessing-mac-os-x-harddrive-from-ubuntu-in-virtualbox-via-shared-folders/


0

Ana Bilgisayar İşletim Sistemi : macOS
VM (misafir) İşletim Sistemi : Ubuntu Sunucu 16.04.5 LTS
VirtualBox v5.2.18
Hem ana bilgisayar işletim sistemi hem de konuk işletim sistemi aynı kullanıcıya sahip olmalıdır (metinde ayrıca: kullanıcı adı ).

Aşama 1: VirtualBox Konuk Eklemelerini Yükleme :

1.1. VirtualBox Konuk Eklemelerini Bulun,

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

1.2. VM'yi başlatın

1.3. Sağ alt görev çubuğundaki CD simgesine tıklayın

1.4. "Disk görüntüsünü seç ..." "i seçin ve VBoxGuestAdditions.iso dosyasını arayın

1.5. Konuk terminal türünde (eğer içine SSH yazarsanız, bunu ana bilgisayar terminalinden de yapabilirsiniz):

$ 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

2. Aşama: Paylaşılan Klasörler Ayarı:

2.1. VM'de kurallar oluşturun:

  • VM'yi durdur
  • Git Settings > Shared Folders
  • Tıklayın Add new port forwarding rulePencerenin sağ üstündeki yeşil düğmeye .
  • Paylaşmak istediğiniz klasörü arayın ve seçin (örneğin: / path / to / shared / host_folder) )
  • Seçin Auto-mountveMake Permanent seçeneklerini
  • VM'yi başlatın

2.2. Paylaşılan klasörü takmak /optiçin shared_folder_diralt klasör oluşturmalı ve buna uygun izinleri ayarlamalısınız:

$ 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. Ekle kullanıcı adı için vboxsf grubunda:

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

2.4. Değişiklikleri uygulamak için VM'yi yeniden başlatın:

$ sudo reboot

3. Aşama: Otomatik montaj host_folderiçine/opt/shared_folder_dir :

3.1. VM'nin /etc/rc.local öğesini değiştirin:

$ sudo nano /etc/rc.local

ve sağ üstündeki aşağıdakileri yerleştirin 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 >>>

Not: VirtualBox Konuk Eklemeleri başladıktan sonrasleep 5 mount işlemini gerçekleştirmek için ekledim. Bunukomutlakontrol edebilirsiniz.journalctl -b

3.2. Değişiklikleri uygulamak için VM'yi yeniden başlatın:

$ sudo reboot

Ayrıca bakınız


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.