Sanal Kutu altındaki paylaşılan klasörlerle dosya izni sorunları (Ubuntu Guest, Windows Host)


103

Sanal Kutuda Ubuntu kullanıyorum ve ana bilgisayar (Windows) ile VM (Ubuntu) arasında paylaşılan bir klasör var. Ubuntu'daki paylaşım klasöründeki herhangi bir dosyayı açtığımda, sahibi kök olarak ayarlandığı için dosyayı değiştiremiyorum.

Mülkiyeti kendime nasıl değiştirebilirim?

İşte çıktısı ls -l:

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

Çıktısı df:

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

VM'deki seçenekler automount ve okuma değeri kontrol edilmedi.

Kullanmaya çalışıldı /media/sf_Ubuntu, ancak izin hatası oluştu:

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

Lütfen grupta olduğumu unutmayın 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)

Paylaşılan klasörü nasıl bağladınız? VirtualBox konuk programları (yani / media / sf_something) tarafından otomatik olarak numaralandırılmasına izin veriyor musunuz veya mount komutunu kullanarak elle mi monte ettiniz?
EightBitTony 23:12

Ayrıca, Windows'taki VirtualBox altında paylaşımın nasıl yapılandırıldığını açıklayabilir misiniz? Paylaşmak için üç seçenek var, salt okunur, automount ve kalıcı, hangi seçenekleri işaretlediniz.
EightBitTony 23:12

Lütfen sorunuza güncellemeler gönderin - yorum olarak değil. Lütfen dfdosya sistemini elle bağlamak için kullandığınız çıktıyı ve komutu ekleyin .
EightBitTony 23:12

Teşekkür ederim - göreceksiniz ki / media / sf_Ubuntu dosya sistemi. Bu sizin paylaşılan klasörünüzdür, elle monte etmeniz gerekmez. / Home / m / Desktop olayını ayarlamanızı ve aşağıdaki cevabım uyarınca çalışan / media / sf_Ubuntu komutunu kullanmanızı öneririm.
EightBitTony 23:12

@Tony: Bu klasöre erişemiyorum. Lütfen daha fazla bilgi eklediğim orijinal soruma bakın
user654019

Yanıtlar:


159

Artık dosyalara erişmenin normal yolu, VirtualBox'un paylaşılan klasörü otomatik olarak doldurmasını sağlamak (altında görünmesini sağlayacak /media/sf_directory_name) ve ardından normal Ubuntu kullanıcınızı vboxsfgruba (kök olarak #) eklemektir .

# usermod -aG vboxsf <youruser>

Varsayılan olarak, manuel işlem yapılmadan, bağlantılar bu şekilde görünür,

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

Böylece vboxsfgrubun tam erişimi var. Kullanıcıyı bu gruba ekleyerek tam erişim elde edersiniz. Bu nedenle, izinlerini değiştirme konusunda endişelenmezsiniz (bu, Windows ana bilgisayarında mantıklı olmaz), yalnızca kendinize erişim izni verirsiniz.

Bu özel durumda, bu otomatik olarak Paylaşılan Klasör,

Ubuntu               214153212  31893804 182259408  15% /media/sf_Ubuntu

ve yerel kullanıcıyı vboxsfgruba koyarak, Paylaşılan Klasöre erişmek için kullanılması gereken dizindir . Kullanıcınızın ana dizininin altında 'daha iyi' bir bağlantı istiyorsanız, her zaman sembolik bir bağlantı oluşturabilirsiniz.

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

Bu değişikliklerin geçerli olması için VM'nizi yeniden başlatmanız gerekecek

Paylaşılan klasörü manuel olarak bağlarsanız, klasörü mountdoğru sahipliğe ayarlamak için komuttaki ilgili seçenekleri kullanmanız gerekir (örn. Gid, uid ve umask seçenekleri mount). Bunun nedeni, Ana Bilgisayar İşletim Sisteminin Linux ile aynı izin sistemini desteklememesidir, bu nedenle VirtualBox'ın dosyalara kimin sahip olması gerektiğini bilme yolu yoktur.

Ancak, paylaşılan klasörü otomatik olarak bağlanacak şekilde yapılandırmanızı şiddetle tavsiye ediyorum (bu, VirtualBox’ın içindeki Paylaşılan Klasör yapılandırmasındaki bir ayardır).


Şüpheden kaçınmak için, normal şekilde monte edilmişse, bu dosya sisteminde izinleri normal şekilde değiştirebileceğinize inanmıyorum.

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
Bunu denediğimde, kullanıcının zaten grupta olduğu mesajını aldım, ancak paylaşım klasöründeki bir dosyayı değiştirmeye çalıştığımda, kaydetmek istediğimde hata alıyorum. Hata: /home/m/Desktop/vbox_shared/test.tst dosyası kaydedilemedi Beklenmeyen hata: geçici dosyayı yeniden adlandırma hatası: Metin dosyası meşgul.
user654019

Bu farklı bir problem, potansiyel olarak izinlerden dolayı değil. Yeni bir dosya oluşturabilir veya farklı bir dosyayı değiştirebilir misiniz? Bekle - / home / m / Desktop / vbox_shared? Paylaşılan klasörü el ile bağladınız mı? Bu varsayılan yol değil.
EightBitTony 23:12

Sistemi kontrol ederken, sadece dosya oluşturma veya silme iznim olduğunu ve okuma / yazma iznini almadığımı tespit ettim. Kendime nasıl verebilirim?
user654019

9
Etkili hale getirmek için yeniden başlatma gerekli görünüyor.
Eric Wang

3
BU CEVAP İÇİN BİR BİRA SEVİYORUM !!! Bunu bulana kadar çalışmamıştım. Bunun orada daha fazla olmadığına inanamıyorum. Keşke birden fazla kez oy kullanabilseydim !!
Tensigh,

3

Win-Ubuntu paylaşılan klasörümde de aynı sorunu yaşadım ve çözdüğüm şekilde, / etc / group dosyasını düzenleyerek kullanıcımı vboxsf grubuna eklemekti. Umarım bu sizin için çalışır. Burada dosyayı nasıl düzenlediğime dair kısa bir şema bulabilirsiniz.

(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
Hiçbir zaman / etc / group dosyalarını doğrudan düzenlememeli, bu iş için uygun araçları kullanmamalısınız (bu durumda usermod -aG <group> <user>).
Raimue

Asıl, sadece bunun neden önerilmesinin nedeni değil, yanlışlıkla / etc / group gibi bir dosyayı el ile güncellerken bir hata yaparsanız, DB'yi geçersiz kılabilir ve temelde sizi kilitleyebilir.
Spencer Williams,

2

Aynı problemi yaşadım ve VirtualBox Misafir Eklemelerinin en son sürümünü kurdum ; benim durumumda 4.3.8'den 4.3.10'a yükseltme yapıldı.

Kurulum tamamlandığında, / media / sf_name klasörü, grup sahibi olarak daha fazla "root" a sahip değildi, fakat "vboxsf" doğru olarak.


1

Suda denedin mi?

$sudo chown username filename

Bunun VirtualBox'un paylaşılan klasörlerinde çalıştığına inanmıyorum.
EightBitTony 23:12

sudo her yerde çalışıyor! : P linki
Extn3389

12
Ciddi olup olmadığından emin değilim, ama seni mizah edeceğim. Takılan paylaşılan klasör bir vboxfstür dosya sistemidir, onurlandırılmaz chown.
EightBitTony

Üzgünüm, bunun işe yarayabileceğini düşündüm.
Extn3389

1
Evet, ancak sahibi değiştirmedi. Bir dosya için bir terminalde tis komutunu çalıştırdıktan ve ardından dosya sahibine baktıktan sonra, yine de kök dizinine aittir.
user654019

1

Seçenekleri mount komutuna göre kontrol etme lüksüne sahipseniz (örneğin elle monte ediyorsanız veya kullanıyorsanız /etc/fstab) -o uid=771seçeneği mount komutuna kullanabilirsiniz.

Bir giriş /etc/fstabşöyle görünür

scanresults    /data/scanresults    vboxsf    uid=771    0 0

1

Kök olmayan bir Linux kullanıcısı için Ubuntu konuklarından bir Windows ana bilgisayarındaki paylaşılan bir klasöre tam okuma, yazma erişimi sağlama

Bu adım, Windows ana makinenizdeki belirli bir dizine Linux konuk terminalinden erişmenizi sağlayacaktır. Bu örnekte, OVB perspektifinden paylaşımın adı vshare (varsayılan), Windows işletim sistemine (ana işletim sistemi) giden tam dir yolu "C: \ var \" ve tam dosya yolu olacaktır. konuk vm'den erişim "/ vagrant" olacak ve nihayet tam okuma / yazma erişimini etkinleştirmek için kullanıcının adı "siz" olacaktır.

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

1. Konuk Eklemeleri ön koşullarını yükleyin

Aşağıdaki komutları vererek Misafir Eklemeleri ön koşullarını yükleyin:

 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. Konuk Eklemelerini Kur

.İso dosyasını indirmek ve oradan yükleyiciyi kullanmayın - sadece işe yaramaz !!!

sudo apt-get install virtualbox-guest-dkms 

3. vm önyüklemesinde otomatik olarak alınacak paylaşım direktifini değiştirin

Fstab dosyanızın sonuna aşağıdaki satırları ekleyerek vm açılışında otomatik olarak düzenlenecek paylaşım dizinini değiştirin ("vshare" conf ve uid = 10001'e dikkat edin):

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

4. kendini vboxsf grubuna ekle

Vm'nizden ana makinenizdeki dosyaları root olmayan olarak düzenleyebilmek için kendinizi vboxsf grubuna eklemeniz gerekir. # mount sudo mount -a

sudo usermod -G vboxsf -a you 

5. yeniden başlat ve doğrula

Dosya paylaşımını doğrulamak için vm'yi yeniden başlatın ve ssh ile giriş yapın. # ssh için vm ssh size @ host-name

# check as yourself that you have 
find /vagrant

0

Konuk sisteminizi yükselttikten sonra sanal kutu eklerinin yeniden yüklenmesi gerekir. Sorun, bence, ubuntu'daki bazı bileşenleri yükseltirken, bazı bileşenleri değiştirdi, vb-eklemelerini yükledikten sonra sf_forlder_name erişilebilir olacaktır. Benim sorunum bu şekilde çözüldü. Pisu'nun çözümü işe yarıyor.


Tecrübelerime göre sanal kutu konuk eklemeleri yalnızca ana bilgisayar VirtualBox sistemi yükseltildiğinde yükseltilmelidir. İstemcideki herhangi bir yazılım değiştiğinde olmaz. İstemcideki hangi yazılımı bu gerekli hale getirmek için yükselttiniz?
Anthon

1
Hayır, Nicky haklı. Misafir işletim sistemi çekirdeğinizi güncellerseniz, Konuk Eklemelerini yeniden kurmanız gerekir.
Spencer Williams

-2
  • Paylaşımların bağlantısını kaldır root
  • chownVe ile gerekli değişiklikleri yapınchmod
  • yeniden başlatma ve paylaşım hisselerinin uygun haklara sahip olduğunu
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.