Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 17/05/2012, à 00:52

cocoLeNain

VM partagées sur VirtualBox

Bonjour à tous,

Je tente de configurer VirtualBox afin d'avoir toutes mes VMs partagées avec tous les users d'Ubuntu. J'ai donc créer pour tous les users un lien symbolique VirtualBox.xml dans /home/{user}/.VirtualBox/ vers un mon unique fichier VirtualBox.xml situé dans un dossier (/home/all/VirtualBox) avec les droits 777 (lectrue, ecriture et execution pour tout le monde). Les VMs sont aussi dans ce même dossier.

nicolas@nicolas-MediaServer:/home/all/VirtualBox$ ll
total 16
drwxrwxrwx 3 tomcat7 tomcat7 4096 mai   16 23:29 ./
drwxr-xr-x 5 root    root    4096 mai   12 00:36 ../
-rwxrwxrwx 1 tomcat7 tomcat7 2204 mai   15 13:57 VirtualBox.xml*
drwxrwxrwx 4 tomcat7 tomcat7 4096 mai   12 19:10 VMs/

J'arrive donc à lister, démarrer et éteindre les VMs avec n'importe quel user mais que la première fois. Car lors du démarrage d'une  VM, VirtualBox crée un fichier <machineVM>.vbox dans le dossier contenant les VMS avec les droits lecture et ecriture seulement pour le user qui a lancé la commande.

nicolas@nicolas-MediaServer:/home/all/VirtualBox/VMs/UbuntuDev$ ll
total 1331268
drwxrwxrwx 3 tomcat7 tomcat7       4096 mai   16 00:21 ./
drwxrwxrwx 4 tomcat7 tomcat7       4096 mai   12 19:10 ../
drwxrwxrwx 2 tomcat7 tomcat7       4096 mai   15 16:48 Logs/
-rw------- 1 tomcat7 tomcat7       6978 mai   16 00:21 UbuntuDev.vbox
-rwxrwxrwx 1 tomcat7 tomcat7       6963 mai   15 16:47 UbuntuDev.vbox-prev*
-rwxrwxrwx 1 tomcat7 tomcat7 1363185664 mai   16 00:17 UbuntuDev.vdi*

Et par conséquent lorsque j'essaie d'éteindre cette même VM avec un autre user, VirtualBox n'y arrive pas car il n'a pas les droits sur le fichier  <machineVM>.vbox.

Y a-t-il solution pour régler mon problème (à part changer les droits après chaque manipulation sur les VMs) ?

Hors ligne

#2 Le 21/05/2012, à 11:29

Mathieu147

Re : VM partagées sur VirtualBox

Je ne suis pas sûr que tu t'y prennes de la bonne façon, parce que comment est-ce que ça fonctionne lorsque tu as plusieurs utilisateurs en même temps qui veulent accéder à la machine virtuelle?

Tu peux utiliser

VBoxManager startvm "Nom de ta machine virtuelle" --type headless"

pour démarrer une machine virtuelle sans afficher sa fenêtre, et tu n'as qu'à y accéder par RDP ensuite:

rdesktop localhost

À mon avis tu ferais mieux de faire un script qui affiche la machine, ou qui la démarre si elle n'est pas encore démarrée.


Pffff…

Hors ligne

#3 Le 21/05/2012, à 14:13

cocoLeNain

Re : VM partagées sur VirtualBox

C'est exactement ce que je fais (la commande avec VBoxManage). Mais, ça m'impose d'utiliser toujours le même user pour lancer la VM et ce que j'essaie d'éviter.

Hors ligne

#4 Le 21/05/2012, à 14:36

Mathieu147

Re : VM partagées sur VirtualBox

Pourquoi est-ce que tu veux absolument que ce soit l'utilisateur qui utilise la machine virtuelle qui la lance également?

Et de toutes façons, non, ma méthode n'oblige pas que ce soit toujours le même utilisateur qui lance la machine virtuelle. Tu pourrais avoir un script qui essaie de se connecter en RDP, et si ça ne marche pas, qui lance la machine lui-même avant de se re connecter en RDP.


Pffff…

Hors ligne

#5 Le 21/05/2012, à 14:43

cocoLeNain

Re : VM partagées sur VirtualBox

Je ne cherche pas à utiliser le user qui a lancé, dans la VM.

Ce que je cherche c'est par exemple le user tomcat7 lance une VM et j'aimerai qu'un autre user de la machine qui heberge la VM (par exemple, mon user) puisse éteindre la VM.
Or ce n'est pas possible actuellement pour des questions de droits (droits rw uniquement pour le createur de fichier, ici tomcat7) sur le fichier .vbox de la VM.

La solution que j'ai trouvé pour l'instant, c'est de faire un coup de chmod 777 avant d'éteindre la VM.

Hors ligne

#6 Le 21/05/2012, à 15:18

Mathieu147

Re : VM partagées sur VirtualBox

Quand tu dis que tu n'arrives plus à éteindre la machine, ça veut dire que tu ne peux pas utiliser VBoxManage? Parce que tu peux te connecter en RDP pour afficher la machine et l'éteindre comme ça.

Peux-tu expliquer un peu plus précisément ce que tu essaies de faire?

Sinon tu peux peut-être changer l'umask du dossier dans lequel est créé le fameux fichier vbox qui n'a pas les bons droits.


Pffff…

Hors ligne

#7 Le 21/05/2012, à 16:00

cocoLeNain

Re : VM partagées sur VirtualBox

Quand je parle d'éteindre la VM, j'utilise en effet la commande VBoxManage. Dans mon cas, la VM est une ubuntu Server, donc pas de RDP. Mais je peux en effet me connecter en ssh et l'éteindre une fois connecté. Malheureusement, ça ne marchera pas si j'essaie de démarrer à nouveau la VM avec une autre user que tomcat7. Car le fichier .vbox n'est pas supprimé à l'extinction.

Sinon pour le changement d'umask, ça ne fonctionne pas, je pense que VirtualBox doit faire un set sur les droits de ce fichier (tester avec un touch avec le user tomcat7, j'ai bien les bon droits).

Je pense que je ne vais pas avoir le choix, il va falloir passer par des moyens détournés du type chmod 777 avant d'executer une commande VBoxManage.

Hors ligne

#8 Le 21/05/2012, à 17:21

Mathieu147

Re : VM partagées sur VirtualBox

cocoLeNain a écrit :

Quand je parle d'éteindre la VM, j'utilise en effet la commande VBoxManage. Dans mon cas, la VM est une ubuntu Server, donc pas de RDP.

Si, c'est géré par VirtualBox, donc même en console tu as un accès en RDP.

cocoLeNain a écrit :

Mais je peux en effet me connecter en ssh et l'éteindre une fois connecté. Malheureusement, ça ne marchera pas si j'essaie de démarrer à nouveau la VM avec une autre user que tomcat7. Car le fichier .vbox n'est pas supprimé à l'extinction.

Sinon pour le changement d'umask, ça ne fonctionne pas, je pense que VirtualBox doit faire un set sur les droits de ce fichier (tester avec un touch avec le user tomcat7, j'ai bien les bon droits).

Je pense que je ne vais pas avoir le choix, il va falloir passer par des moyens détournés du type chmod 777 avant d'executer une commande VBoxManage.

Et ça ne suffit pas de modifier les droits une seule fois? À chaque fois que tu démarres la machine virtuelle, VirtualBox les remet comme il a envie?


Pffff…

Hors ligne

#9 Le 22/05/2012, à 10:33

cocoLeNain

Re : VM partagées sur VirtualBox

En effet, quand je fais la commande touch avec le user tomcat7 pour créer un fichier dans le répertoire de la VM, j'ai bien un fichier avec tous les droits pour tout le monde. Mais en utilisant la commande VBoxManage, VirtualBox me crée un fichier .vbox avec juste les droits rw pour le createur (ici tomcat7).

Hors ligne

#10 Le 22/05/2012, à 11:07

Mathieu147

Re : VM partagées sur VirtualBox

Apparemment tu n'es pas le seul a avoir le problème. Ici une personne tente de faire ce que tu fais sur Mac OS. Il a fait un script qui change les permissions, à mon avis tu n'y couperas pas.

Sinon, pourquoi ne pas faire plusieurs machines virtuelles (une par utilisateur) qui partagent le même disque dur virtuel?


Pffff…

Hors ligne

#11 Le 22/05/2012, à 11:33

cocoLeNain

Re : VM partagées sur VirtualBox

A priori, ça ne changera rien. car le fichier .vbox est créé dans le même répertoire que le fichier .vdi. Je pense donc que le fichier .vbox fait partie du disque dur virtuel.

Hors ligne

#12 Le 12/05/2014, à 12:29

xacomputer

Re : VM partagées sur VirtualBox

Il n'est jamais trop tard pour amener sa pierre à l'édifice...
Une piste pourrait être trouvée avec le paramètre c de la commande su, je m'explique :

J'ai plus ou moins le même problèmes, à la différence que moi je dois démarrer un vm au démarrage... cette vm appartient à l'utilisateur vbox, que j'ai créer pour utiliser virtualbox et phpvirtualbox, malheureusement mettre un script avec vboxmanage startvm "ma_vm" ça ne marche pas car les script dan init.d sont executé par root, sa solution est d'utiliser la commande su dans le script soit :

su vbox -c 'vboxmanage starvm "ma_VM" --type headless'

(ATTENTION ' et ") ça execute la commande en tant que vbox mais je reste logger en root.

Cela pourrais être un piste pour toi, en tout cas j'espere que ça en à dépanner d'autres (je suis tomber sur ton topic en cherchant comment faire ce que je viens de décrire)

Bonne journée a tous

Dernière modification par xacomputer (Le 12/05/2014, à 12:32)

Hors ligne