J'utilise Ubuntu sur Virtual Box et j'ai un dossier qui est partagé entre l'hôte (Windows) et le VM (Ubuntu). Lorsque j'ouvre un fichier dans le dossier de partage dans Ubuntu, je ne peut pas le modifier car son propriétaire est défini sur root.
Comment puis-je changer la propriété pour moi?
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 est automount et le readoly n'est pas vérifié.
J'ai essayé d'utiliser /media/sf_Ubuntu
, mais obtention d'une 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 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
Veuillez noter que je fais partie du 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 fichiers maintenant, est de permettre à VirtualBox de monter automatiquement le dossier partagé (ce qui le fera apparaître sous /media/sf_directory_name
) puis pour ajouter votre utilisateur Ubuntu habituel au groupe vboxsf
(en tant que root #
).
# usermod -aG vboxsf <youruser>
Par défaut, sans action manuelle, les montures ressemblent à ceci,
drwxrwx--- 1 root vboxsf 40960 Oct 23 10:42 sf_<name>
donc le groupe vboxsf
a un accès complet. En ajoutant votre utilisateur à ce groupe, vous obtenez un accès complet. Donc, vous ne vous inquiétez pas de changer leurs autorisations (qui n'ont pas de sens sur l'hôte Windows), vous vous donnez simplement l'accès.
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 répertoire qui doit être utilisé pour accéder au dossier partagé, en plaçant l'utilisateur local dans le groupe vboxsf
. Si vous voulez un "meilleur" lien sous le répertoire personnel de votre utilisateur, vous pouvez toujours créer un lien symbolique.
ln -s /media/sf_Ubuntu /home/m/Desktop/vbox_shared
Si vous montez manuellement le dossier partagé, vous devez utiliser les options appropriées sur la commande mount
pour définir le dossier avec la bonne propriété (c'est-à-dire les options gid, uid et umask sur mount
) . Cela est dû au fait que le système d'exploitation hôte ne prend pas en charge le même système d'autorisation que Linux, donc VirtualBox n'a aucun moyen de savoir à qui devraient appartenir les fichiers.
Cependant, je recommande fortement de simplement configurer le dossier partagé pour qu'il soit monté automatiquement (c'est un paramètre sur la configuration du dossier partagé dans VirtualBox lui-même).
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$
Cette étape vous permettra d'accéder à un certain répertoire sur votre machine hôte Windows à partir du terminal invité Linux. Dans cet exemple, le nom du partage du point de vue OVB sera vshare (qui est la valeur par défaut), le chemin de répertoire complet vers le système d'exploitation Windows (le système d'exploitation hôte) sera "C:\var \" et le chemin de fichier complet pour y accéder depuis le vm invité sera "/ vagrant". Enfin, le nom de l'utilisateur pour activer l'accès complet en lecture/écriture sera "vous".
# how-to add a shared folder on the Host
VBoxManage sharedfolder add "Host-name" -name "vshare" -hostpath "C:\var" -automount
Installez les prérequis des suppléments invité en émettant la commande 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
N'utilisez pas le fichier .iso pour télécharger et exécuter le programme d'installation à partir de là - cela ne fonctionnera tout simplement pas !!!
Sudo apt-get install virtualbox-guest-dkms
Configurez le répertoire de partage à monter automatiquement au démarrage vm en ajoutant les lignes suivantes à la fin de votre fichier/etc/fstab (notez la conf "vshare" et l'uid = 10001):
/media/sf_vshare /vagrant vboxsf bind,uid=10001,rw,umask=0000 0 0
# eof file: /etc/fstab
# mount
Sudo mount -a
Sudo usermod -G vboxsf -a you
Redémarrez le VM et connectez-vous via ssh pour vérifier le partage de fichiers.
# ssh to the vm
ssh you@Host-name
# check as yourself that you have access
find /vagrant
J'ai juste eu le même problème avec mon dossier partagé Win-Ubuntu, et la façon dont je l'ai résolu était d'ajouter mon utilisateur dans le groupe vboxsf, d'éditer le fichier/etc/group. J'espère que cela fonctionne pour toi. Ici vous pouvez trouver un bref schéma de la façon dont j'ai édité le fichier
(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.
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, je passais de 4.3.8 à 4.3.10.
Une fois l'installation terminée, le dossier / media/sf_name n'avait plus "root" comme propriétaire du groupe, mais "vboxsf" comme correct.
Avez-vous essayé sudo?
$Sudo chown username filename
Si vous avez le luxe de contrôler les options de la commande mount (par exemple, si vous montez manuellement ou utilisez /etc/fstab
) vous pouvez utiliser le -o uid=771
option pour la commande de montage.
Une entrée dans /etc/fstab
ressemblerait
scanresults /data/scanresults vboxsf uid=771 0 0
Les ajouts de boîte virtuelle doivent être réinstallés après la mise à niveau de votre système invité. Le problème, je pense, est que lorsque vous mettez à niveau certains composants dans ubuntu, certains composants ont changé, après l'installation de vb-additions, sf_forlder_name sera accessible. Mon problème est résolu de cette façon. La solution de Pisu fonctionne.