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 26/03/2011, à 21:53

Migoz

Machine virtuelle accessible à plusieurs utilisateurs

Rendre une machine virtuelle accessible à plusieurs utilisateurs sur le même PC (Ubuntu 10.10)

Bonjour à tous.
Je vous expose brièvement le souci du jour.

L'utilisateur Migoz a créé puis installé une machine virtuelle (appelons-la "becane") avec VirtualBox 4 (Oracle VM VirtualBox).
Lorsque Migoz éteint cette machine virtuelle, les droits sur le fichier becane.vdi sont exclusivement rw pour l'utilisateur Migoz.

-rw------- 1 migoz migoz 9457148416 2011-03-25 21:57 becane.vdi

Petit futé, Migoz autorise l'utilisateur Zigmo à utiliser la machine "becane" en changeant les droits sur le fichier becane.vdi

Et de fait, lorsque Zigmo ouvre sa session Ubuntu, il parvient sans souci à utiliser la machine virtuelle "becane".
Oui mais !
Lorsqu'il éteint la machine virtuelle, les droits sur le fichier repassent à rw uniquement pour Zigmo !

-rw------- 1 zigmo zigmo 9457148955 2011-03-25 22:10 becane.vdi

Et passez moi l'expression : Migoz est marron  Il n'est plus autorisé à ouvrir la machine virtuelle "becane" à moins de changer "à la main" les droits sur le fichier becane.vdi

Quelqu'un a-t-il expérimenté ce désagrément ?
Y a-t-il moyen de dire à Oracle VM VirtualBox : le dernier utilisateur n'est pas le seul utilisateur !

Merci.
Migoz (Et Zigmo)

Hors ligne

#2 Le 27/03/2011, à 04:09

AlexandreP

Re : Machine virtuelle accessible à plusieurs utilisateurs

Salut,

Tu dis changer les droits Unix sur le fichier de disque dur: comment procèdes-tu? Quels droits fixes-tu sur ce fichier?

Je viens de faire le test de créer un nouveau disque dur virtuel par l'interface de VirtualBox, et effectivement les permissions attribuées sont rw-------, avec mon compte d'utilisateur en tant que propriétaire du fichier. VirtualBox ne semble pas modifier les droits d'un fichier; il doit se contenter d'agir selon ce qui est déjà paramétré dessus. Donc, VirtualBox ne modifie aucune permission et aucune propriété: seul un utilisateur (comme toi) a un impact sur ces paramètres. Et elles doivent être changés à la main.

Le but étant de permettre à plusieurs utilisateurs de bosser sur un même disque dur virtuel, sans devoir modifier manuellement les droits après chaque utilisation:

  • Tu ne peux pas jouer sur l'utilisateur propriétaire du fichier. Ce paramètre ne concerne qu'un seul utilisateur. Ici, tu veux pouvoir gérer plusieurs utilisateurs à la fois. Donc, ça ne sert à rien de modifier ce paramètre;

  • Tu peux jouer sur le groupe propriétaire du fichier. En prenant pour acquis que tous les utilisateurs pouvant utiliser le disque dur virtuel sont membres du groupe vboxusers, attribue la propriété su fichier à ce groupe. Puis, attribue des permissions suffisantes (lecture et écriture, par exemple).

    migoz@ordinateur:~$ sudo adduser migoz vboxusers
    migoz@ordinateur:~$ sudo adduser zigmo vboxusers
    migoz@ordinateur:~$ sudo chgrp vboxusers becane.vdi
    migoz@ordinateur:~$ sudo chmod g+rw becane.vdi 

«La capacité d'apprendre est un don; La faculté d'apprendre est un talent; La volonté d'apprendre est un choix.» -Frank Herbert
93,8% des gens sont capables d'inventer des statistiques sans fournir d'études à l'appui.

Hors ligne

#3 Le 27/03/2011, à 23:44

Migoz

Re : Machine virtuelle accessible à plusieurs utilisateurs

Merci pour ta réponse qui m'a bien mis sur de nouveaux rails.
La suite :
mes deux users avaient déjà les droits vboxusers

En revanche, le fait d'attribuer comme groupe "vboxusers"
  * au dossier où se trouve le fichier becane.vdi
  * au fichier becane.vdi lui-même
permet aux deux utilisateurs de faire fonctionner la machine "becane". Après utilisation par l'un ou l'autre des utilisateurs, le fichier becane.vdi garde bien les droits rw-rw----

Parenthèse 1 : j'ai fait le test sur ma propre machine alors que la "vraie" situation est sur une machine au boulot qui sera utilisée par deux collègues. J'aurai peut-être le temps demain, pas sûr.

Parenthèse 2 : lors des tests sur ma machine, lorsqu'un utilisateur ferme la machine virtuelle brutalement et enregistre l'état actuel, cet état est propre à cet utilisateur. Je retrouve un fichier becane.vbox et un fichier becane.vbox-prev dans le dossier VirtualBox VMs propre à chaque user et avec les droits rw-------

root@schwarz:/# ls -l /home/migoz/VirtualBox\ VMs/xp/
total 32
drwxr-xr-x 2 migoz migoz  4096 2011-03-27 23:54 Logs
drwxr-xr-x 2 migoz migoz  4096 2011-03-27 23:58 Snapshots
-rw------- 1 migoz migoz 11553 2011-03-27 23:59 becane.vbox
-rw------- 1 migoz migoz 11553 2011-03-27 23:59 becane.vbox-prev

root@schwarz:/# ls -l /home/zigmo/VirtualBox\ VMs/xp/
total 32
drwxr-xr-x 2 zigmo zigmo  4096 2011-03-28 00:00 Logs
drwxr-xr-x 2 zigmo zigmo  4096 2011-03-28 00:00 Snapshots
-rw------- 1 zigmo zigmo 11106 2011-03-28 00:00 becane.vbox
-rw------- 1 zigmo zigmo 11041 2011-03-28 00:00 becane.vbox-prev

Je ne pige pas comment ça peut fonctionner mais le fait est là : les deux peuvent utiliser la même machine virtuelle mais chacun la retrouve dans l'état où lui-même l'avait laissée ! Etonnant, non ?

Je devrais pousser jusqu'au bout et utiliser le même dossier "VirtualBox VMs" pour les deux. Pour l'instant, chacun a le sien dans son home et il est un peu tard et demain c'est lundi etc. etc., tu vois, quoi !
En tout cas, merci de m'avoir lu et répondu.

Probablement à suivre !
Migoz

Hors ligne

#4 Le 28/03/2011, à 04:12

AlexandreP

Re : Machine virtuelle accessible à plusieurs utilisateurs

Je suis quand même étonné.

Pas que les deux utilisateurs aient leur propre fichier becane.vbox. Ce fichier contient la description de la machine virtuelle (quantité de RAM accordée à la machine, nombre de CPU, nombre de cartes réseau, leur modèle, leur adresse MAC, etc., une description du matériel de la VM, quoi). À moins que tu partages aussi ces fichiers de description -- ce n'est pas le cas actuellement --, chaque utilisateur a son propre fichier becane.vbox; chacun a sa propre machine virtuelle.

Par contre, le fichier becane.vdi n'est qu'un disque dur (virtuel). Il n'a pas conscience de fonctionner dans l'une ou l'autre des deux machines virtuelles: lui, tout ce qu'il sait, c'est qu'il est raccordé à une machine. Après, si tu déplaces ton disque d'une machine à l'autre, son contenu et son état devraient rester inchangés. Alors c'est ça qui m'étonne...


«La capacité d'apprendre est un don; La faculté d'apprendre est un talent; La volonté d'apprendre est un choix.» -Frank Herbert
93,8% des gens sont capables d'inventer des statistiques sans fournir d'études à l'appui.

Hors ligne

#5 Le 31/03/2011, à 16:02

Migoz

Re : Machine virtuelle accessible à plusieurs utilisateurs

AlexandreP a écrit :

Après, si tu déplaces ton disque d'une machine à l'autre, son contenu et son état devraient rester inchangés. Alors c'est ça qui m'étonne...

Non, non, tout se passe sur la même machine. Sessions différentes pour chaque utilisateur (ils sont deux, en fait) mais répertoire commun pour le fichier becane.vdi (accessible en lecture et écriture pour le groupe vboxusers).
Néanmoins (et je sais que ça semble incroyable mais c'est ainsi) : le fichier vdi a beau être utilisé par chacun des deux utilisateurs, ces deux-ci le retrouvent tel que chacun l'avait laissé. Ça m'a scotché mais c'est ainsi.
Nous n'avons pas pu faire de tests avancés (à cause de réunions de travail et surtout bikoz je partais en petits congés pour quelques jours cool )
Du coup, la machine est restée en l'état, attendant que je revienne.
Pour ne perturber ni le DHCP, ni mes collègues attendant impatiemment ce nouveau PC, je vais probablement copier le fichier vdi dans leurs dossiers respectifs (ce n'est pas l'espace qui manque sur le disque, c'est le temps à passer sur le problème...) et modifier l'adresse MAC de la carte-réseau virtuelle. Ça ne va pas réellement à fond sur l'étude du problème mais ça résoudra tout en un coup. Je sais, c'est lâche...

En tout cas, merci de ta correspondance, c'est sympa.
J'écrirai une conclusion lorsque je serai retourné au taf et et que j'aurai appliqué une solution acceptable pour mes deux pauv' collègues qui doivent piaffer !
Migoz

Hors ligne

#6 Le 01/04/2011, à 03:27

AlexandreP

Re : Machine virtuelle accessible à plusieurs utilisateurs

Migoz a écrit :
AlexandreP a écrit :

Après, si tu déplaces ton disque d'une machine à l'autre, son contenu et son état devraient rester inchangés. Alors c'est ça qui m'étonne...

Non, non, tout se passe sur la même machine.

Bah non, puisque tu utilises deux machines virtuelles différentes (une machine pour Migoz, une machine pour Zigmo). Le disque dur virtuel est rattaché (donc, déplacé) d'une machine virtuelle à l'autre lorsqu'elle est utilisée soit par Migoz soit par Zigmo.

Il y a peut-être une histoire de snapshot derrière tout ça... mais je ne connais pas assez VirtualBox non plus pour saisir la source exacte de ce comportement.


«La capacité d'apprendre est un don; La faculté d'apprendre est un talent; La volonté d'apprendre est un choix.» -Frank Herbert
93,8% des gens sont capables d'inventer des statistiques sans fournir d'études à l'appui.

Hors ligne

#7 Le 01/04/2011, à 10:23

src

Re : Machine virtuelle accessible à plusieurs utilisateurs

Peut-être que vous pouvez lancer Virtualbox sous le même utilisateur?
Vous créez un compte système commun, et vous lancez Virtualbox avec la commande:

$ su - utilisateur
virtualbox

Comme ça plus de problèmes.
Note qu'il faudra déplacer le fichier caché .virtualbox dans le /home du nouvel utilisateur créé.


Actuellement sur Manjaro Xfce (amd64)

Hors ligne

#8 Le 07/04/2011, à 09:29

Migoz

Re : Machine virtuelle accessible à plusieurs utilisateurs

Le principe de l'utilisateur dédié était alléchant, et au final, c'est ce que nous avons retenu.
Voici ce que nous avons fait.

  • création d'un compte spécial (nommé vm) utilisateur unique de la machine virtuelle

  • installation de la machine virtuelle (nommée BecaneXP) sur la session de l'utilisateur vm

  • création d'un script (nommé StartBecaneXP.sh) dans /usr/local/bin avec ce contenu :

    #!/bin/sh 
    xhost +  
    sudo -H -u vm VirtualBox --startvm BecaneXP
  • Ajout du script StartBecaneXP.sh sans mot de passe (avec visudo) pour les utilisateurs "migoz" et "zigmo"

    migoz ALL=NOPASSWD: /usr/local/bin/StartBecaneXP.sh
    zigmo ALL=NOPASSWD: /usr/local/bin/StartBecaneXP.sh
  • Ajout d'un lanceur dans la session de Migoz et dans celle de Zigmo avec cette ligne de commande :

    sudo /usr/local/bin/StartBecaneXP.sh

De la sorte, les deux utilisateurs ont accès à la même machine virtuelle, à condition toutefois qu'elle ne soit pas en ouverte par l'autre utilisateur. En revanche, chacun retrouve la machine virtuelle telle qu'elle a été laissée par le dernier utilisateur (fermée ou enregistrée), c'était le but à atteindre.

Merci pour vos réponses, elles nous ont ouvert des voies non négligeables.
Je mettrai le sujet comme résolu à moins qu'un VirtualBoxeur ajoute un nouvel uppercut à cette discussion lol

Migoz

Hors ligne