Dosyaları bağlı paylaşılan klasörde nasıl saklayabilirim?


18

Bir Ubuntu ana bilgisayarında Fedora Workstation sanal makinesi çalıştırıyorum.
Konukta bir klasör oluşturdum /home/cl/shareve linux-kvm'den/media/cl/system/virtual/share gelen talimatları izleyerek paylaşılan klasörü kök olarak monte ettim :

mount -t 9p -o trans=virtio,version=9p2000.L /host /home/cl/share

Paylaşılan klasörlerden dosya ve klasörlere erişebiliyorum (okuyabiliyorum), ancak bunlara yazamıyorum.

Bir örnek: Dosyayı mount-share.txtklasöre kaydetmeye çalışıyorum /home/cl/share.

Her iki klasörde (ana bilgisayar ve konuk) okuma-yazma izinleri bulunur, ancak yine de hatayı alıyorum

Error opening file '/home/cl/share/mount-share.txt': Operation not permitted.
  • Ana bilgisayar işletim sistemi: Ubuntu 15.10 masaüstü 64 bit
  • Konuk işletim sistemi: Fedora 23 iş istasyonu 64 bit
  • Sanallaştırma yazılımı: qemu qemu-kvm virt-manager
  • Ana sistem konumu: 1. dahili SSD - ext4 biçimi
  • Sanal depolama yeri: 2. dahili HDD - NTFS biçimi
  • Paylaşılan klasörlerin konumu: 2. yerleşik HDD - NTFS biçimi

virt yönetici

Bir dizini misafir ile toplantı sahibi arasında nasıl paylaşabilir ve misafirin okuma-yazma erişimine nasıl izin verebilirim?

sudo chmod a+x /media/clve sudo chmod -R 777 /mediadurumu değiştirmedi.

Misafir sistemi:

ls -la /home/cl/share  
total 16  
drwxrwxrwx.  1 cl cl 4096 20. Jan 14:41 .  
drwx------. 18 cl cl 4096 24. Jan 19:11 ..  
drwxrwxrwx.  1 cl cl 4096 17. Dez 09:49 fedora  
drwxrwxrwx.  1 cl cl    0  5. Jan 11:43 solus  
drwxrwxrwx.  1 cl cl    0  6. Jan 12:10 ubuntu  
drwxrwxrwx.  1 cl cl 4096 24. Jan 16:58 various    

stat /home/cl/share  
  File: ‘/home/cl/share’  
  Size: 4096         Blocks: 8          IO Block: 4096   directory  
Device: 25h/37d    Inode: 135       Links: 1  
Access: (0777/drwxrwxrwx)  Uid: ( 1000/     cl)   Gid: ( 1000/      cl)  
Access: 2016-01-27 10:11:12.566303000 +0100  
Modify: 2016-01-26 21:34:48.647707300 +0100  
Change: 2016-01-26 21:34:48.647707300 +0100  
 Birth: -  

Sunucu sistemi:

ls -ld /media /media/cl/ /media/cl/system /media/cl/system/virtual/ /media/cl/system/virtual/share  
drwxr-xr-x  3 root root 4096 Okt 22 16:06 /media  
drwxr-x---+ 6 root root 4096 Jan 24 10:49 /media/cl/  
drwxrwxrwx  1 cl   cl   4096 Jan 19 15:28 /media/cl/system  
drwxrwxrwx  1 cl   cl   4096 Jan 22 13:43 /media/cl/system/virtual/  
drwxrwxrwx  1 cl   cl   4096 Jan 20 14:41 /media/cl/system/virtual/share  

getfacl /media/cl/  
getfacl: Removing leading '/' from absolute path names  
# file: media/cl/  
# owner: root  
# group: root  
user::rwx  
user:libvirt-qemu:--x  
user:cl:r-x  
group::---  
mask::r-x  
other::---

ps aux | grep virt
root       988  0.0  0.2 1207024 39888 ?       Ssl  12:48   0:01 /usr/sbin/libvirtd  
libvirt+  1204  0.0  0.0  45268  2720 ?        S    12:48   0:00 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/lib/libvirt/libvirt_leaseshelper  
root      1207  0.0  0.0  45240   368 ?        S    12:48   0:00 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/lib/libvirt/libvirt_leaseshelper  
cl        4204  0.0  0.0  15184  2532 pts/2    S+   14:06   0:00 grep --color=auto virt

Neden iki linux sistemi arasında paylaşım yapmak için NTFS kullanıyorsunuz? Aynı kurulumu daha yerel bir dosya biçimiyle denediniz mi?
Klaatu von Schlacker

2
@KlaatuvonSchlacker: İkinci HDD, işletim sistemi ile ilgili olmayan ve verilere Windows gibi diğer işletim sistemleri ile erişmek istediğimde esnek olacak şekilde biçimlendirilmiş her şeyi içerir. Sanallaştırma için VirtualBox kullandığımda, klasör paylaşımı ile ilgili her şey düzgün çalışıyor.
cl-netbox

Dosya sistemine yazmaya çalışırken hata mesajı ile ilgili olarak: ana bilgisayardan yazmaya çalıştığınızda veya sadece misafirden yazmaya çalıştığınızda bu hatayı alıyor musunuz?
Joker

@Wildcard: Konuk içinden bir şeyler yazmaya (depolamaya) çalışırken hata mesajı alıyorum.
cl-netbox

Yanıtlar:


14

Sorunu sistemimde yeniden üretebilirim.
Ana sorununuz, ana makinenizin ACL kısıtlamalarıdır.
Bu nedenle libvirt-qemukullanıcının ACL özelliklerini değiştirin :

sudo setfacl -R -m u:libvirt-qemu:rwx /media/cl

İçin Modeayarını Filesystem /host olarak Passthroughdeğiştirin Mapped.


Neden? İşte sebebi bu:

Konuk sisteminiz libvirt-qemukullanıcı olarak çalışır ve EKL ayarlarınız bu kullanıcının izinlerini kısıtlar.

user:libvirt-qemu:--x

Doğru çıktı getfacl:

user:libvirt-qemu:rwx

2

Birincil hedefiniz dosyaları ileri geri paylaşmaksa ve TCP kullanmaya açıksanız, dosyaları ssh veya benzeri bir cihazla paylaşabilirsiniz.

Örneğin, yerel bir bağlantı noktasını konuk üzerindeki makul bir bağlantı noktasına yeniden yönlendirirseniz, bu bağlantı noktasını erişim için kullanabilirsiniz. SSH / SCP kullanıyorum.

VM'mi başlatırken:

qemu-kvm [all your usual qemu options] -net nic -net user -redir tcp:22122::22

Ve sonra VM'ye erişmek için SSH kullanıyorum; Ana makinemde bir terminal açıyorum:

scp -P22122 myfile.txt klaatu@localhost:~/ssh-share-dir

fishveya sshfskullandığınız GUI dosya yöneticisinde bağlantı noktasını ayarladığınız sürece de aynı şekilde çalışır.


1
Ne yapmalıyım: Ubuntu sunucunuzda, paylaşılan dizini sunan NFS sunucusunu yapılandırın (istemciye okuma-yazma yapabilirsiniz). Ve sadece Fedora VM istemcisine monte edin. IP bağlantınız olduğundan, büyük olasılıkla bir cazibe gibi çalışacaktır.
KWubbufetowicz
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.