Problèmes d'autorisation de files avec des dossiers partagés sous Virtual Box (hôte Ubuntu, hôte Windows)

J'utilise Ubuntu sur Virtual Box et j'ai un dossier qui est partagé entre l'hôte (Windows) et la machine virtuelle (Ubuntu). Lorsque j'ouvre un file dans le dossier partagé d'Ubuntu, je ne peux pas le changer car son propriétaire est root.

Comment puis-je changer la propriété de moi-même?

Voici la sortie de ls -l :

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

La sortie de df est:

  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 

Les options dans VM sont automount et le readoly n'est pas vérifié.

Essayé d'utiliser /media/sf_Ubuntu , mais get l'erreur d'autorisation:

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

S'il vous plaît noter que je suis dans le groupe 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) 

La façon habituelle d'accéder aux files maintenant est de permettre à VirtualBox de monter automatiquement le dossier partagé (ce qui le fera apparaître sous /media/sf_directory_name ), puis d'append votre user Ubuntu au groupe vboxsf (en tant que root # ) .

 # usermod -aG vboxsf <youruser> 

Par défaut, sans action manuelle, les assemblys ressemblent à ceci,

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

le groupe vboxsf a donc un access complet. En ajoutant votre user à ce groupe, vous bénéficiez d'un access complet. Donc, vous ne vous soucieriez pas de changer leurs permissions (ce qui n'a pas de sens sur l'hôte Windows), vous donnez simplement l'access.

Dans ce cas spécifique, il s'agit du dossier partagé monté automatiquement,

 Ubuntu 214153212 31893804 182259408 15% /media/sf_Ubuntu 

et c'est ce directory qui doit être utilisé pour accéder au dossier partagé, en plaçant l'user local dans le groupe vboxsf . Si vous voulez un lien «meilleur» sous le directory personnel de votre user, vous pouvez toujours créer un lien symbolique.

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

Vous devrez redémarrer votre machine virtuelle pour que ces modifications prennent effet

Si vous montez manuellement le dossier partagé, vous devez utiliser les options appropriées de la command mount pour définir le dossier avec la propriété appropriée (c'est-à-dire les options gid, uid et umask à mount ). En effet, le operating system hôte ne prend pas en charge le même système d'autorisation que Linux, alors VirtualBox n'a aucun moyen de savoir qui devrait posséder les files.

Cependant, je recommand fortement de configurer le dossier partagé à monter automatiquement (c'est un paramètre de la configuration du dossier partagé dans VirtualBox lui-même).


Pour éviter tout doute, je ne crois pas que vous puissiez modifier les permissions normalement de toute façon, sur ce système de files s'il est monté de manière régulière,

 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$ 

J'ai eu le même problème et j'ai résolu d'installer la dernière version de VirtualBox Guest Additions ; dans mon cas passait de 4.3.8 à 4.3.10.

Une fois l'installation terminée, le dossier / media / sf_name ne possédait plus de «root» en tant que propriétaire du groupe, mais «vboxsf» était correct.

J'ai juste eu le même problème avec mon dossier partagé Win-Ubuntu, et la façon dont j'ai résolu était d'append mon user dans le groupe vboxsf, en éditant le file / etc / group. J'espère que cela fonctionne pour toi. Ici vous pouvez find un petit schéma de la façon dont j'ai édité le 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.

Avez-vous essayé sudo?

 $sudo chown username filename 

Si vous avez le luxe de contrôler les options de la command mount (par exemple si vous montez manuellement ou en utilisant /etc/fstab ), vous pouvez utiliser l'option -o uid=771 pour la command mount.

Une input dans /etc/fstab ressemblerait

 scanresults /data/scanresults vboxsf uid=771 0 0 

Les ajouts de boîtes virtuelles doivent être réinstallés après la mise à niveau de votre système invité. Le problème, je pense, c'est quand vous mettez à jour certains composants dans ubuntu, certains composants ont changé, après l'installation de vb-additions, sf_forlder_name sera accessible. Mon problème résolu de cette façon. La solution de Pisu fonctionne.

Activer la lecture complète, l'access en écriture à un dossier partagé sur un hôte Windows à partir d'un invité Ubuntu pour un user Linux non root

Cette étape vous permettra d'accéder à un certain directory de votre machine hôte Windows à partir du terminal invité Linux. Dans cet exemple, le nom du partage de la perspective OVB sera vshare (qui est la valeur par défaut), le path d'access complet au operating system Windows (le operating system hôte) sera "C: \ var \" et le path complet du file l'access à partir de l'invité vm sera "/ vagrant", et enfin le nom de l'user pour activer l'access réel / écriture sera "vous". # comment-append un dossier partagé sur l'hôte dossier partagé VBoxManage append "host-name" -name "vshare" -hostpath "C: \ var" -automount

1. Installez les conditions d'ajout d'invité

Installez les conditions préalables d'ajout d'invité en exécutant la command suivante:

  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. Installez les ajouts invité

Ne pas utiliser le file .iso pour download et l'installateur à partir de là – il ne fonctionnera tout simplement pas !!!

 sudo apt-get install virtualbox-guest-dkms 

3. Modifiez votre pour le directory dir à monter automatiquement sur le démarrage de vm

Modifiez votre directory pour que le directory dir soit installé sur le démarrage de vm en ajoutant les lignes suivantes à la fin de votre file fstab (notez le conf «vshare» et le uid = 10001):

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

4. ajoutez-vous au groupe vboxsf

Vous devez vous append au groupe vboxsf afin de pouvoir modifier en tant que non-root à partir de votre vm les files de votre machine hôte. # mount sudo mount -a

 sudo usermod -G vboxsf -a you 

5. redémarrez et vérifiez

Redémarrez le vm et connectez-vous via ssh pour vérifier le partage de files. # ssh dans le vm ssh vous @ nom-hôte

 # check as yourself that you have find /vagrant 
  • Démonter des partages en tant que root
  • Apportez les modifications requirejses avec chown et chmod
  • redémarrer et vérifier les actions sont avec des droits appropriés