web-dev-qa-db-fra.com

Problèmes d'autorisation de fichiers avec les dossiers partagés sous Virtual Box (Ubuntu Guest, Windows Host)

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)
115
user654019

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

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

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$ 
174
EightBitTony

Activer l'accès complet en lecture et en écriture à un dossier partagé sur un hôte Windows à partir d'un invité Ubuntu pour un utilisateur Linux non root

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

1. Installer les prérequis des suppléments invité

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

2. Installez les compléments d'invité

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 

3. Monter automatiquement le partage au démarrage

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 

4. Ajoutez-vous au groupe vboxsf

# 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 fichiers.

# ssh to the vm
ssh you@Host-name

# check as yourself that you have access
find /vagrant
3
Yordan Georgiev

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.

3
LuisaFernanda

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.

2
Pisu

Avez-vous essayé sudo?

$Sudo chown username filename
1
Extn3389

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
1
Mutant Bob

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.

0
nicky