Cara membuat Guest OS mengikuti symlink dari folder bersama


18

Saya memiliki Ubuntu Desktop sebagai OS utama saya dan Server Ubuntu sebagai OS Tamu saya di VirtualBox 4.2.16.

Saya membuat folder bersama bernama / shared dan memasukkan beberapa symlink ke folder berbeda di OS utama saya. Tentu saja, OS tamu saya hanya melihat symlink yang rusak - karena lokasi ini hanya ada di OS utama.

Bagaimana saya bisa membuat OS Tamu saya melihat konten mereka yang sebenarnya?

Membuat folder bersama lain bukanlah suatu opsi.


1
FYI jika host Anda adalah windows7,8,10 maka Anda harus mengikuti instruksi dalam jawaban DAN kemudian juga memulai sudo VM (alias "jalankan sebagai administrator") seperti yang terlihat di posting blog ini tentang tamu linux VM folder bersama dengan symlink pada host windows .
Trevor Boyd Smith

Jawaban:


23

Ini adalah masalah di virtualBox dan berkaitan dengan keamanan. Sebelum 4.1.8 symlink berfungsi tetapi cacat serius. Dan diskresi dibuat untuk menghapus dukungan symlink.

Lihat komentar ini :

Pembuatan tautan simbolik dari dalam tamu telah dinonaktifkan di VirtualBox 4.1.8 untuk alasan keamanan. Seorang tamu dapat membuat tautan simbolis yang mengarah ke luar direktori host yang ditugaskan. Ini tidak ada hubungannya dengan bug ext3 / ext4. Dan tamu masih dapat membaca symlink yang dibuat pada host.

Maaf atas pernyataan yang terlambat.

Jika kamu melakukan

 VBoxManage setextradata VM_NAME VBoxInternal2/SharedFoldersEnableSymlinksCreate/SHARE_NAME 1

Kemudian tamu Anda akan dapat membuat symlink lagi. Tetapi karena alasan keamanan (lihat di atas) ini dinonaktifkan secara default. Perbaikan untuk mencegah symlink berbahaya dari tamu sangat rumit, oleh karena itu kami memutuskan untuk tidak mengizinkan tamu untuk membuat symlink apa pun untuk mengatasi masalah keamanan.

(Saya mengambil kebebasan untuk memperbaiki bug di komentar;))

  • dan perhatikan juga bahwa Anda perlu memulai ulang vBox agar perubahan dapat diaktifkan.

Saya menjalankan perintah ini dan memulai kembali VB. Warna symlink telah berubah, tetapi sekarang saya bahkan tidak dapat menggunakannya. Saya melihatnya ketika saya menggunakan ls, tetapi bash berhenti menunjukkannya di TAB.
dev9

Hmm sepertinya tidak bisa dieksekusi?
Rinzwind

Yah, dia menunjukkan padaku lrwxrwx ---, jadi itu harus baik-baik saja. Ketika saya mencoba melakukan cd ke dalamnya, bash memberi tahu saya tidak ada file atau direktori tersebut.
dev9

3
Apa itu SHARE_NAME? Tidak ada yang menjelaskan dengan jelas dari mana kita mendapatkannya.
Meglio

3
Folder yang Anda gunakan untuk berbagi.
Rinzwind

1

Jawaban singkatnya adalah tidak bisa dilakukan.

Tiket berikut di virtualbox.org memiliki beberapa klarifikasi:

Perubahan ini disengaja, dan memperbaiki masalah dengan implementasi folder bersama saat ini. Untuk kompatibilitas dengan OS tamu yang tidak tahu apa symlink itu saat ini ditafsirkan di sisi tuan rumah, dan ini berarti seseorang mendapatkan perilaku yang tidak terduga dengan OS tamu yang tahu apa itu symlink (misalnya jika symlink pada folder bersama dipasang di / foo akan menunjuk ke / bar / file tidak mungkin untuk melakukan hal yang benar di sisi host).

Ini tentu saja dapat diperbaiki, tetapi jauh dari sepele karena pemisahan pemrosesan symlink antara sisi OS tamu dan sisi host perlu dirancang ulang. Ini tidak dapat dilakukan dengan cepat, jadi satu-satunya pilihan adalah untuk menonaktifkan pembuatan symlink. Terlalu banyak pengguna / aplikasi terkejut oleh perilaku non-standar.

Sumber

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.