Masalah izin file dengan folder bersama di bawah Virtual Box (Ubuntu Guest, Windows Host)


103

Saya menggunakan Ubuntu di Virtual Box dan saya memiliki folder yang dibagi antara host (Windows) dan VM (Ubuntu). Ketika saya membuka file apa pun di folder share di Ubuntu, saya tidak bisa mengubahnya karena pemiliknya diatur ke root.

Bagaimana saya bisa mengubah kepemilikan untuk diri saya sendiri?

Ini adalah output dari ls -l:

-rwxrwxrwx 1 root root 0 2012-10-05 19:17 BuildNotes.txt

Output dari dfadalah:

m@m-Linux:~/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

Opsi dalam VM adalah automount dan readoly tidak dicentang.

Sudah mencoba menggunakan /media/sf_Ubuntu, tetapi mendapatkan kesalahan izin:

m@m-Linux:/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
m@m-Linux:/media$ cd sf_Ubuntu/
bash: cd: sf_Ubuntu/: Permission denied
m@m-Linux:/media$ cd sf_vbox_shared/
bash: cd: sf_vbox_shared/: Permission denied

Harap dicatat bahwa saya ada di grup vboxsf:

m@m-Linux:~$ 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)

Bagaimana Anda memasang folder bersama? Apakah Anda membiarkannya diautomatiskan oleh utils tamu VirtualBox (yaitu / media / sf_something) atau apakah Anda memasangnya secara manual menggunakan perintah mount?
EightBitTony

Juga, dapatkah Anda menjelaskan bagaimana Anda telah mengonfigurasi berbagi di bawah VirtualBox di Windows? Ada tiga opsi untuk dibagikan, hanya baca, otomatis dan permanen, opsi mana yang sudah Anda tandai.
EightBitTony

Silakan kirim pembaruan untuk pertanyaan Anda - bukan sebagai komentar. Harap sertakan output dfdan perintah yang Anda gunakan untuk me-mount sistem file secara manual.
EightBitTony

Terima kasih - Anda akan melihat ada sistem file / media / sf_Ubuntu. Itu folder Anda bersama, Anda tidak perlu me-mount secara manual. Saya sarankan Anda melakukan umount / home / m / Desktop, dan cukup gunakan / media / sf_Ubuntu yang berfungsi sesuai jawaban saya di bawah ini.
EightBitTony

@Tony: Saya tidak bisa mengakses folder ini. Silakan lihat pertanyaan asli saya yang saya tambahkan informasi lebih lanjut
user654019

Jawaban:


159

Cara biasa untuk mendapatkan akses ke file sekarang, adalah dengan mengizinkan VirtualBox untuk mengotomatiskan folder bersama (yang akan membuatnya muncul di bawah /media/sf_directory_name) dan kemudian menambahkan pengguna Ubuntu Anda ke vboxsfgrup (sebagai root #).

# usermod -aG vboxsf <youruser>

Secara default, tanpa tindakan manual, tunggangan terlihat seperti ini,

drwxrwx--- 1 root vboxsf 40960 Oct 23 10:42 sf_<name>

sehingga vboxsfgrup memiliki akses penuh. Dengan menambahkan pengguna Anda ke grup itu, Anda mendapatkan akses penuh. Jadi Anda tidak perlu khawatir tentang mengubah izin mereka (yang tidak masuk akal pada host Windows), Anda hanya memberi diri Anda akses.

Dalam kasus khusus ini, ini adalah Folder Bersama yang diotomatisasi,

Ubuntu               214153212  31893804 182259408  15% /media/sf_Ubuntu

dan direktori itulah yang harus digunakan untuk mengakses Folder Bersama, dengan menempatkan pengguna lokal ke dalam vboxsfgrup. Jika Anda menginginkan tautan 'lebih baik' di bawah direktori home pengguna Anda, Anda selalu dapat membuat tautan simbolis.

ln -s /media/sf_Ubuntu /home/m/Desktop/vbox_shared

Anda harus mem-boot ulang VM Anda agar perubahan ini berlaku

Jika Anda memasang folder bersama secara manual, maka Anda perlu menggunakan opsi yang relevan pada mountperintah untuk mengatur folder dengan kepemilikan yang tepat (yaitu opsi gid, uid, dan umask mount). Ini karena OS Host tidak mendukung sistem izin yang sama seperti Linux, jadi VirtualBox tidak memiliki cara untuk mengetahui siapa yang harus memiliki file.

Namun, saya sangat menyarankan hanya mengkonfigurasi folder bersama untuk dipasang secara otomatis (ini adalah pengaturan pada konfigurasi Folder Bersama di VirtualBox itu sendiri).


Untuk menghindari keragu-raguan, saya tidak percaya Anda dapat mengubah izin secara normal, pada sistem file itu jika dipasang secara teratur,

tony@jabba:/media/sf_name$ ls -l tst.txt
-rwxrwx--- 1 root vboxsf 2283 Apr  4  2012 tst.txt
tony@jabba:/media/sf_name$ sudo chown tony tst.txt
[sudo] password for tony: 
tony@jabba:/media/sf_name$ ls -l tst.txt
-rwxrwx--- 1 root vboxsf 2283 Apr  4  2012 tst.txt
tony@jabba:/media/sf_name$ 

2
Ketika saya mencoba ini, saya mendapat pesan bahwa pengguna sudah dalam grup, tetapi ketika saya mencoba untuk mengubah file pada folder share, saya mendapatkan kesalahan ketika saya ingin menyimpannya. Kesalahannya adalah: Tidak dapat menyimpan file /home/m/Desktop/vbox_shared/test.tst Kesalahan tak terduga: kesalahan mengganti nama file sementara: File teks sibuk.
user654019

Itu masalah yang berbeda, mungkin bukan karena izin. Bisakah Anda membuat file baru, atau memodifikasi file lain. Tunggu - / home / m / Desktop / vbox_share? Sudahkah Anda memasang folder bersama secara manual? Itu bukan jalur default.
EightBitTony

Memeriksa sistem, saya menemukan bahwa saya hanya memiliki izin untuk membuat atau menghapus file dan tidak membaca / menulis izin. Bagaimana saya bisa memberikannya kepada diri saya sendiri?
user654019

9
Tampaknya reboot diperlukan untuk membuatnya berfungsi.
Eric Wang

3
ANDA MEMILIH BIR UNTUK JAWABAN INI !!! Saya tidak bisa membuat ini bekerja sama sekali sampai saya menemukan ini. Tidak percaya ini tidak ada lagi. Saya berharap saya bisa lebih memilihnya lebih dari sekali !!
Tensigh

3

Saya hanya memiliki masalah yang sama dengan folder bersama Win-Ubuntu saya, dan cara saya menyelesaikannya adalah menambahkan pengguna saya ke grup vboxsf, mengedit file / etc / group. Semoga ini berhasil untuk Anda. Di sini Anda dapat menemukan skema pendek tentang bagaimana saya mengedit file

(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.


2
Anda tidak boleh mengedit / etc / group secara langsung, gunakan alat yang sesuai untuk pekerjaan ini (dalam hal ini usermod -aG <group> <user>).
raimue

Alasan utama, jika tidak hanya, mengapa ini direkomendasikan adalah karena jika Anda secara tidak sengaja membuat kesalahan secara manual memperbarui file seperti / etc / group, itu dapat membuat DB tidak valid dan pada dasarnya mengunci Anda.
Spencer Williams

2

Saya memiliki masalah yang sama dan saya menyelesaikan menginstal versi terbaru dari VirtualBox Guest Additions ; dalam kasus saya ditingkatkan dari 4.3.8 ke 4.3.10.

Ketika instalasi selesai, folder / media / sf_name tidak lagi memiliki "root" sebagai pemilik grup, tetapi "vboxsf" sebagai benar.


1

Sudahkah Anda mencoba sudo?

$sudo chown username filename

Saya tidak percaya ini bekerja pada folder bersama VirtualBox.
EightBitTony

sudo bekerja di mana-mana! : P link
Extn3389

12
Saya tidak yakin apakah Anda serius, tetapi saya akan menghibur Anda. Folder bersama yang di-mount adalah vboxfstipe filesystem, tidak memenuhi syarat chown.
EightBitTony

Maaf saya hanya berpikir ini mungkin berhasil.
Extn3389

1
Ya, tapi itu tidak mengubah pemiliknya. Setelah menjalankan perintah ini di terminal untuk file, dan kemudian melihat pemilik file, itu masih milik root.
user654019

1

Jika Anda memiliki kemewahan mengendalikan opsi ke perintah mount (misalnya jika memasang secara manual atau menggunakan /etc/fstab), Anda dapat menggunakan -o uid=771opsi tersebut untuk perintah mount.

Entri masuk /etc/fstabakan terlihat seperti

scanresults    /data/scanresults    vboxsf    uid=771    0 0

1

Aktifkan akses baca, tulis penuh ke folder bersama di host Windows dari tamu Ubuntu untuk pengguna Linux non-root

Langkah ini akan memungkinkan Anda untuk mengakses dir tertentu pada mesin host Windows Anda dari terminal tamu Linux. Dalam contoh ini nama pembagian dari perspektif OVB akan menjadi vshare (yang merupakan default), path dir penuh ke OS Windows (host OS) akan menjadi "C: \ var \" dan path file lengkap untuk mengaksesnya dari vm tamu akan menjadi "/ gelandangan", dan akhirnya nama pengguna untuk mengaktifkan akses rea / tulis penuh akan menjadi "Anda".

 # how-to add a shared folder on the host
 VBoxManage sharedfolder add "host-name" -name "vshare" -hostpath "C:\var" -automount

1. Instal prasyarat Penambahan Tamu

Instal prasyarat Penambahan Tamu dengan mengeluarkan perintah berikut:

 sudo apt-get install -y build-essential make gcc  linux-headers-$(uname -r) 
 linux-headers-generic make linux-source  linux-generic linux-signed-generic

2. Instal Penambahan Tamu

Jangan gunakan file iso untuk mengunduh dan installer dari sana - itu tidak akan berfungsi !!!

sudo apt-get install virtualbox-guest-dkms 

3. Ubah dir Anda untuk dibagikan secara otomatis pada boot vm

Ubah dir untuk share yang akan di-auto-kan pada vm boot dengan menambahkan baris berikut di akhir file fstab Anda (perhatikan conf "vshare", dan uid = 10001):

/media/sf_vshare /vagrant vboxsf bind,uid=10001,rw,umask=0000 0 0
# eof file: /etc/fstab 

4. tambahkan diri Anda ke grup vboxsf

Anda perlu menambahkan diri Anda ke grup vboxsf agar dapat mengedit sebagai non-root dari file Anda di mesin host Anda. # mount sudo mount -a

sudo usermod -G vboxsf -a you 

5. reboot dan verifikasi

Mulai ulang vm dan masuk melalui ssh untuk memverifikasi berbagi file. # ssh ke vm ssh you @ host-name

# check as yourself that you have 
find /vagrant

0

Penambahan kotak virtual harus diinstal lagi setelah Anda meningkatkan sistem tamu Anda. Masalahnya, saya pikir, adalah ketika Anda memutakhirkan beberapa komponen di ubuntu, beberapa komponen berubah, setelah menginstal vb-penambahan, sf_forlder_name akan dapat diakses. Masalah saya diselesaikan dengan cara ini. Solusi Pisu bekerja.


Dalam pengalaman saya penambahan tamu kotak virtual hanya perlu ditingkatkan ketika sistem tuan rumah VirtualBox ditingkatkan. Tidak ketika ada perangkat lunak pada klien yang berubah. Perangkat lunak apa pada klien yang Anda tingkatkan untuk menjadikan ini perlu?
Anthon

1
Tidak, nicky benar. Anda harus menginstal ulang Penambahan Tamu jika Anda memperbarui kernel OS tamu Anda.
Spencer Williams

-2
  • Lepas bagian saham sebagai root
  • Buat perubahan yang diperlukan dengan chowndanchmod
  • reboot dan checkout saham dengan hak yang tepat
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.