Apa cara yang benar untuk berbagi direktori dengan Ubuntu yang berjalan di Virtual Box VM dengan izin yang benar?

23

Di VirtualBox, apa cara terbaik untuk berbagi direktori antara host OS X dan tamu Ubuntu?

  • Host: Mac OS X 10.7.3
  • Tamu: Ubuntu 12.04
  • Guest memiliki direktori bersama yang dipasang melalui pengaturan VirtualBox dengan Access = Full dan Auto-Mount = Ya .

Masalah dengan pengaturan ini diilustrasikan di bawah ini. Di direktori bersama saya, saya tidak bisa mengubah izin sama sekali (bukan izin yang ditolak kesalahan, tetapi mereka tidak berlaku).

Ubuntu 12.04 (tamu):

% 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

Jika saya chmod pada tamu, tidak ada yang berubah:

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

Jika saya chmod pada host, itu berubah pada host tetapi tidak pada tamu:

$ 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
jmdeldin
sumber
Ah, saya sudah mengetahuinya, tapi saya tidak bisa mengirim jawabannya selama 8 jam (tidak cukup poin). Solusinya adalah melakukan sudo mount.vboxsf -o umask=002,gid=1000,uid=1000 src /media/sf_src, di mana umask adalah nilai dari umaskpengguna, uid dan gid berasal id <user>, srcadalah nama share VBox, dan /meida/sf_srcmerupakan titik mount yang diinginkan.
jmdeldin

Jawaban:

23

Saya sudah menemukan jawabannya!

Untuk mereproduksi:

  1. Matikan VM, tambahkan folder bersama dalam pengaturan VBox (Permanen = Ya, Mount Otomatis = Tidak)
  2. Mulai VM
  3. Dari terminal, jalankan umask && idsebagai pengguna biasa untuk mendapatkan sesuatu seperti ini:

    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

Untuk memasang srcdirektori sebagai ujian:

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

Untuk memasang secara otomatis saat login, edit /etc/fstabdan tambahkan berikut ini:

src /media/sf_src vboxsf umask=002,gid=1000,uid=1000
jmdeldin
sumber
Ini persis apa yang saya cari! Saya akhirnya membuat grup pengguna bersama untuk apache2 dan pengguna saya yang memiliki akses ke folder yang di-mount. serverfault.com/questions/6895/…
thesmart
Terima kasih! Perhatikan bahwa saya memiliki masalah besar sampai saya menemukan bahwa /sbin/mount.vboxsfitu adalah symlink yang menjuntai! Menghapusnya dan ln -s /opt/VBoxGuestAdditions-4.3.10/lib/VBoxGuestAdditions/mount.vboxsf /sbin/mount.vboxsfmemecahkan masalahnya! Instalasi penambahan tamu mungkin tidak dapat menghubungkannya. Aku menghabiskan jauh terlalu banyak waktu mencari tahu ini!
csl
2
... sekarang satu-satunya masalah adalah vboxsf tampaknya tidak menangani symlink! Seperti di, Anda tidak dapat membuat symlink di folder bersama dari VM! (Setidaknya pada OSX, VirtualBox 4.3.10
csl
Prosedur ini tentu saja adalah salah satu dari sedikit untuk membawa Anda ke sana. Namun dalam kasus saya, ketika saya mengubah ke direktori bersama dan mencoba mengeluarkan perintah ls, terminal hang
demongolem
4

Masalahnya - masalah izin di vbox / ubuntu mengakses drive yang dibagikan OSX

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

Tujuannya adalah cara sederhana untuk berbagi direktori antara lingkungan Mac dan Ubuntu. Sayangnya contoh-contoh yang saya lihat sejauh ini tampaknya sedikit lebih kompleks daripada yang sebenarnya perlu, dan tidak benar-benar menjelaskan apa masalah nyata yang perlu diselesaikan. Saya akan berusaha menangani kedua masalah itu di sini.

Lingkungan di sini adalah Mac yang menjalankan OSX 10.9.5, dengan Virtual Box 4.3.16 menjalankan Ubuntu-14.04.1 dengan ekstensi Guest diinstal. Barang-barang September 2014.

Saya berpikir bahwa seluruh masalah di sini adalah bahwa uid direktori pada Mac, dan di Ubuntu harus sesuai - default gid ditugaskan untuk pengguna dan kelompok yang berbeda antara OSX dan Ubuntu, dan bahwa di mana masalah kebohongan.

Untuk mengakses file, seseorang harus memilikinya, atau menjadi anggota grup yang memilikinya. Dan karena akses sebenarnya didasarkan pada nomor id grup, bukan nama grup, yang diperlukan hanyalah membuat nomor grup umum di kedua sisi, yang menjadi milik pengguna.

Itulah yang dilakukan oleh solusi di bawah ini. Jangan menyesatkan dengan panjangnya apa yang ditulis, itu sebenarnya sangat sederhana. Ada banyak sekali contoh tentang apa yang terjadi.

Saya akan membalik-balik antara OSX dan VBOX konsol di sini (mac dan virtual-box / ubuntu) dalam dokumen ini - pastikan Anda memahami jendela Anda.

Catatan akhir: Solusi yang ditunjukkan di bawah ini didasarkan pada pembuatan ID grup umum antara lingkungan OSX dan Ubuntu, sehingga izin file berfungsi. Mungkin ada solusi lain yang lebih modern. Yang ini benar-benar sederhana dan mudah dimengerti, dan berjalan dengan instalasi sederhana tanpa hiasan.

OSX: —————

Catatan yang dilakukan pada yang baru di luar kotak 10.9.5 Mac, dengan tidak ada di dalamnya, tidak terhubung ke jaringan perusahaan, tidak ada yang suka berjalan di atasnya selain perangkat lunak saham. Ini sesederhana yang didapat.

Ketika saya melakukan instalasi default pada Mac, joe_public adalah pengguna admin, dan uid-nya diatur ke 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)

Perhatikan bahwa uid adalah 501 - ini adalah id akun pertama default di OSX - tidak ada yang istimewa

Saya membuat beberapa direktori yang ingin saya bagikan di sisi Mac - Perhatikan bahwa saya tidak meletakkannya di bawah direktori pengguna saya untuk alasan cadangan.

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

Kotak virtual standar sederhana dan instalasi ubuntu - sekali lagi, joe_public adalah admin default yang dibuat ketika saya menginstal ubuntu.

Harap perhatikan sekali lagi, bahwa ruang nama antara OSX dan Ubuntu sama sekali berbeda. Sama sekali tidak ada hubungan antara kedua nama di sini.

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)

Menciptakan tiga titik pemasangan, menggunakan Pengaturan Kotak Virtual -> Folder Berbagi gui.

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

CATATAN: Saya benar-benar harus memulai ulang sesi saya untuk semua poin pemasangan ini muncul.

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)

Perhatikan bahwa gid untuk ini adalah 999 - ini adalah grup vboxsf .

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

Ini ditugaskan secara otomatis oleh Virtual Box versi 4.3.16 untuk kami. Dokumentasi vbox menunjukkan cara bagaimana mengubah ini jika Anda memasang path secara manual melalui baris perintah, tetapi siapa yang akan mengingatnya - Cukup ambil default yang diminta GUI pada kita ..

Tapi itu tidak berhasil (diharapkan pada titik ini - itulah yang kami coba pecahkan)

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

Perhatikan bahwa pada titik ini joe_public bukan anggota grup vboxsf itu - dan itu akan menjadi masalah sampai kami memperbaikinya. FYI: Ini adalah grup default yang ditetapkan untuk akun ketika dibuat.

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

Jadi apa yang kita miliki saat ini (kami belum melakukan apa pun untuk memperbaikinya)

•   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

Kami tidak ingin mengubah gid pengguna joe_public di kedua sisi, karena itu menyebalkan pada sistem yang sudah diinstal, dan tidak menyelesaikan ini untuk pengguna lain. Solusi paling sederhana adalah membuat grup id yang cocok - vboxsf - di sisi mac, dan pastikan bahwa joe_public adalah anggota di kedua sisi.

Jadi, masih di vbox / ubuntu, membuat joe_public anggota dari 999 vboxsf kelompok

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

Saya pikir saya keluar dari akun saya dan kembali lagi ke sini setelah saya melakukan ini.

OSX: —————

Sekarang kita perlu membuat grup vboxsf di mac. Saya ragu bahwa nama itu benar-benar membuat perbedaan di sini - ini adalah grup 999 id yang penting. Harap diingat bahwa ruang nama sistem direktori (dan juga nama pengguna) berbeda antara host dan sistem operasi VM. Tetapi hanya untuk membuat hidup menjadi waras, kita semua menyebutnya vboxsf di mac. Alasan yang sama mengapa joe_public digunakan nama pengguna di kedua sisi.

OSX tidak memiliki perintah add group sederhana seperti linux - jadi gunakan perintah dscl untuk melakukan ini dalam beberapa langkah. Silakan lihat dokumentasi mac os untuk detail lebih lanjut tentang ini. Perhatikan bahwa kita membuat grup vboxsf, dan menambahkan joe_public ke grup itu di sini.

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

Jadi, pada titik ini, kita seharusnya memiliki

•   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

Buktinya di sini adalah jika itu berfungsi - jadi itulah langkah selanjutnya

VBOX: ——————

masuk ke direktori kami dan sentuh file

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

Periksa apakah kami berhasil membuat file.

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

Itu semua tampaknya berfungsi ..

VBOX: —————— VERIFIKASI FINAL

Apa yang kami periksa di sini adalah bahwa semua ini bergantung pada pengguna joe_public yang menjadi anggota grup vboxsf - dan cara paling sederhana adalah dengan menghapus joe_public dari grup

Menghapus pengguna joe_public dari grup vboxsf

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

Melihat apakah kami dapat mengaksesnya direktori kami - dan kami tidak bisa, dan ini membuktikan bahwa itu adalah masalah izin grup

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

Tambahkan pengguna kembali ke vboxsf

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

Berhasil lagi!

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: - SATU MASALAH LEBIH BANYAK - tautan simbolik di vbox -------

Jika Anda masuk ke / media / sf_share , Anda akan menemukan bahwa tautan simbolis di direktori bersama tidak berfungsi. Ini adalah masalah yang sangat besar jika Anda mencoba mengatur lingkungan pengembangan linux penuh pada drive bersama.

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

Secara default, tautan simbolik tidak didukung pada bagikan kotak virtual. Lihat penjelasan di bawah ini. Pada dasarnya seperti yang saya pahami, tautan simbolik adalah lubang keamanan yang "diperbaiki" di Virtual Box dengan menonaktifkan dukungan untuk mereka dalam kerangka waktu 4.1.8 (2011). Saya menjalankan 4.3.16 di sini ...

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

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

Untungnya ada pintu belakang untuk mengaktifkannya kembali, melalui perintah Host's VBoxManage . Seperti biasa, tolong pahami celah keamanan di sini yang mungkin Anda buka. Saya menggunakan mesin pengembangan yang berdiri sendiri, jadi ini sepertinya bukan masalah.

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

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

Catatan: Ubuntu adalah nama vm saya, dan dibagikan adalah nama direktori bersama.

Anda bisa mendapatkan nama vm seperti ini:

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

Dan nama folder bersama, baik melalui Kotak Virtual gui, atau

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

Saya mem-boot ulang seluruh sistem kotak virtual di sini, saya tidak tahu persyaratan minimum yang harus diambil.

Lagi pula, untuk menguji ini, kembali ke jendela vbox Anda

VBOX: ---------

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

Tidak ada kesalahan - dan untuk memverifikasi

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

Dan kembali pada sisi mac - hanya untuk membuktikan semuanya berhasil

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

Harap dicatat, saya hanya menguji ini pada host OSX, dan klien kotak virtual Ubuntu. Referensi yang saya sebutkan di atas tampaknya menunjukkan bahwa mungkin ada masalah menjalankan host berbasis Windows.

KIRI LATIHAN UNTUK SISWA ———————

Manfaat dari metode yang tercantum di atas adalah dapat berjalan di mesin stand-along, tanpa akses jaringan. Tetapi jika Anda berpikir tentang hal ini, masalah nama-ayat-id ini harus menjadi masalah umum di antara lingkungan komputasi yang heterogen.

Apa solusi lain yang tersedia di mana solusi untuk masalah itu tersedia? - Hal-hal seperti Active Directory (produk Microsoft) dan sejenisnya mungkin dapat menyelesaikan ini. Akan menarik untuk mendapatkan koleksi solusi tersebut dan membandingkan berbagai fitur dan pengorbanan di sana.

pbradstr
sumber
3

Bagi saya yang perlu saya lakukan adalah:

sudo adduser [username] vboxsf

Itu sudah cukup bagi saya untuk mendapatkan akses ke folder bersama. Folder memiliki grup vboxsf, pengguna hanya perlu ditugaskan ke grup itu untuk mendapatkan akses. Jika Anda perlu mengatur akses yang lebih ketat atau akses yang lebih terkendali, Anda mungkin harus melalui langkah-langkah pemasangan secara manual dengan userid-s yang tepat.

Bagi saya solusi fstab tidak berfungsi dan menyebabkan mesin tidak bisa boot dengan benar.

Kris Avi
sumber
3

Setelah Anda membuat folder bersama dalam pengaturan Virtualbox, Ubuntu akan secara otomatis memasangnya untuk Anda lain kali Anda boot sistem (Anda akan melihat ikon di desktop Anda).

masukkan deskripsi gambar di sini

Tetapi jika Anda tidak menggunakan akun root, Anda tidak akan memiliki izin untuk mengaksesnya. Yang perlu Anda lakukan adalah menambahkan akun pengguna Anda ke grup pengguna yang disebut 'vboxsf':

sudo usermod -G vboxsf -a $USER

Kemudian logout dan login lagi. Anda dapat mengakses folder bersama sekarang.

realhu
sumber
3

Sejak VirtualBox v4.0, mudah untuk menyelesaikan masalah izin ini! Anda tidak perlu khawatir tentang mkdir, mount, chmod, umask, dll Untuk mengakses folder auto-mount bersama (yang muncul dalam /mediadengan sf_prefiks secara default), hanya ada satu hal yang perlu Anda lakukan: Tambah nama pengguna ke vboxsfgrup melalui sudo usermod -a -G vboxsf [username].

Untuk kenyamanan, Anda mungkin juga ingin membuat tautan simbolis ke folder bersama di dalam homefolder Anda (mis., ln -s /media/sf_Stuff ~/Stuff).

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

remake
sumber
Poin bagus tentang tautan simbolik.
Shaun Dychko
0

Saya menemukan ini, saya menguji dan berfungsi di Ubuntu dan Xubuntu, hanya fitur automount tidak bekerja untuk saya

I. Instal Tambahan Tamu

Pertama, Anda perlu menginstal Tambahan Tamu VirtualBox ke sistem host:

Pilih di menu VitualBox: Perangkat -> Instal Penambahan Tamu ...

Itu memasang ISO baru untuk sistem host. CD baru muncul di Ubuntu (atau pasang). Jalankan sebagai root skrip instalasi VBoxLinuxAdditions-x86.run (karena itu adalah Mac berbasis Intel) di jendela Terminal:

cd /media/cdrom
sudo VBoxLinuxAdditions-x86.run

Mungkin Anda akan diminta untuk me-restart Ubuntu.

Menginstal Guest Additions memiliki banyak keuntungan seperti mengadopsi resolusi layar (ukuran jendela Anda adalah resolusi sistem, yaitu tidak ada scrollbar), mode mouse yang mudah (tidak perlu menekan tombol perintah kiri untuk melepaskan kursor mouse) dan, apa yang kita cari untuk, folder bersama.

II Buat Folder Bersama

Tujuannya adalah untuk mengakses folder bersama, apa cara yang lebih mudah daripada menggunakan sshd atau Samba.

Pilih di menu VitualBox: Perangkat -> Folder Bersama ...

  • Klik tombol Tambahkan folder bersama baru.
  • Pilih Path Folder - folder pada harddisk Mac Anda, mis. / Users / ondrej / Pictures.
  • Pilih Nama Folder - nama yang mengidentifikasi folder bersama ini di Ubuntu (sebagai sistem host), mis. Gambar.
  • Pilih Jadikan Permanen - jika Anda ingin tetap menggunakan definisi folder bersama ini.
  • Klik OK.
  • Klik OK untuk menutup daftar folder bersama.

AKU AKU AKU. Pasang Folder Bersama

Pasang folder bersama yang dibuat ke dalam folder dengan izin untuk pengguna Anda. Mari kita buka jendela Terminal di Ubuntu dan:

Buat folder tempat folder bersama dipasang. (Lewati langkah ini jika sudah memiliki folder untuk ini.)

mkdir DIR

mis. (dalam / tmp)

mkdir share

Dapatkan pengguna Anda uid:

id

Hasilnya akan seperti:

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

jadi pengguna saya adalah 1000. Pasang folder yang dibagikan SHARED_FOLDER_NAME ke dalam folder MOUNTED_FOLDER dengan kepemilikan untuk pengguna dengan uid USER_ID sebagai root:

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

misalnya

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

Menentukan parameter uid memungkinkan penulisan ke folder bersama untuk pengguna Anda. Folder yang dipasang MOUNTED_FOLDER (mis. / Tmp / share) berisi file dari folder bersama di hard drive Mac Anda. Dimungkinkan juga untuk menulis ke folder share. Secara opsional, folder bersama dapat dipasang secara otomatis pada permulaan mesin virtual. Tambahkan baris berikut ke file / etc / fstab (sebagai root, mis. Sudo vim / etc / fstab):

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

misalnya

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

di mana nilai uid dan gid dapat ditemukan di output dari perintah id (lihat langkah 2 untuk contoh terperinci). Folder bersama akan tersedia juga setelah restart mesin virtual.

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

Yesus
sumber
0

OS Host : macOS
VM (tamu) OS : Ubuntu Server 16.04.5 LTS
VirtualBox v5.2.18
OS host dan OS tamu harus memiliki pengguna yang sama (lebih lanjut dalam teks: nama pengguna ).

Tahap 1: Instal Penambahan Tamu VirtualBox :

1.1. Temukan Penambahan Tamu VirtualBox,

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

1.2. Mulai VM

1.3. Klik ikon CD di bilah tugas kanan bawah

1.4. Pilih "Pilih disk image ..." "dan cari VBoxGuestAdditions.iso

1.5. Dalam tipe terminal tamu (Anda juga dapat melakukan ini dari terminal host jika Anda memasukkan SSH ke dalamnya):

$ 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

Tahap 2: Pengaturan Folder Bersama:

2.1. Buat aturan di VM:

  • Hentikan VM
  • Pergi ke Settings > Shared Folders
  • Klik pada Add new port forwarding ruletombol hijau di kanan atas jendela.
  • Cari dan pilih folder yang ingin Anda bagikan (misalnya: / path / ke / shared / host_folder )
  • Pilih Auto-mountdanMake Permanent opsi
  • Mulai VM

2.2. Untuk memasang folder bersama pada /optAnda harus membuat shared_folder_dirsubfolder dan mengatur izin yang sesuai untuk itu:

$ 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. Tambahkan nama pengguna ke grup vboxsf :

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

2.4. Reboot VM untuk menerapkan perubahan:

$ sudo reboot

Tahap 3: Pemasangan otomatis host_folderke/opt/shared_folder_dir :

3.1. Ubah VM /etc/rc.local:

$ sudo nano /etc/rc.local

dan tempatkan tepat di atas 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 >>>

Catatan: Saya telah menambahkansleep 5untuk menjalankan operasi pemasangan setelah Penambahan Tamu VirtualBox telah dimulai. Anda dapat memeriksanya denganjournalctl -bperintah.

3.2. Reboot VM untuk menerapkan perubahan:

$ sudo reboot

Lihat juga

Ukr
sumber
-1

Dari /ubuntu//a/171357/476506

# usermod -aG vboxsf user

Perintah di atas akan memberikan akses ke folder bersama untuk "pengguna".

Utkarsh Naiknaware
sumber