web-dev-qa-db-fra.com

Virtualbox Ubuntu Desktop 18 incapable de modifier les autorisations de fichier du dossier partagé

J'essaie d'utiliser un dossier partagé de la machine hôte Windows comme répertoire racine de lighttpd sur la machine virtuelle Ubuntu de l'invité. Lorsque je tente de modifier les autorisations, rien ne se passe. Les autorisations restent toujours les mêmes (comme indiqué ci-dessous). lighttpd renvoie toujours une erreur 403, quel que soit le type de fichier. Comment puis-je changer les permissions du fichier?

Modifier:

La recherche suggère d’ajouter mon utilisateur au groupe d’utilisateurs vboxsf qui me permettra de modifier les autorisations. Lorsque j'essaie d'ajouter mon utilisateur au groupe à l'aide de usermod, cela semble avoir fonctionné, mais les modifications sont immédiatement remplacées et restaurées. D'autres sources suggèrent que je dois monter manuellement le disque avec les autorisations que je veux. Malgré mes tentatives de changement de propriétaire, root reste propriétaire. Ceci en dépit de mon explication précédente de tenter d'utiliser usermod pour changer le propriétaire. En vérifiant les paramètres de groupe dans le fichier/etc/group, je vois que mon nom d'utilisateur est répertorié. Cependant, virtualbox peut interférer.

Au lieu de cela, j’envisage de créer un partage réseau entre l’invité et l’hôte.

Fin éditer

/media/sf_Space.io$ ls -l
total 10
drwxrwx--- 1 root vboxsf    0 May 12 11:57  css
-rwxrwx--- 1 root vboxsf    8 May 12 12:27  index.html
drwxrwx--- 1 root vboxsf    0 May 12 11:57  js
drwxrwx--- 1 root vboxsf    0 May 12 11:57  PythonCGITest
-rwxrwx--- 1 root vboxsf 1181 May 12 11:57  README.md
drwxrwx--- 1 root vboxsf    0 May 12 11:57  sprites
-rwxrwx--- 1 root vboxsf  587 May 12 11:57  test.html
drwxrwx--- 1 root vboxsf 4096 May 12 11:57 'welcome page (sketch)'
2
www139

Après des heures de travail, j'ai trouvé ma propre solution. Le problème des autorisations est lié à la façon dont virtualbox monte les systèmes de fichiers à partir de l'hôte. Le système de fichiers de mon hôte est ntfs dans cette situation. Malgré les commandes qui tentent de modifier les autorisations de volume, les autorisations restent avec root en tant que propriétaire et les autorisations sont définies sur 770.

  • Installez le package des additions invité sur votre machine virtuelle. Créez un nouveau dossier partagé en ne cochant que "Rendre permanent". NE PAS cocher la case de montage automatique. En outre, ne savez pas si cela est nécessaire, mais installez également le package d'extension de virtualbox sur votre système d'exploitation hôte.

  • Créez un répertoire sur la machine invitée (le système d'exploitation s'exécutant dans virtualbox).

  • Créez un fichier .sh avec le script bash suivant:

    sleep 1 echo '[your password]' | Sudo -S mount -t vboxsf -o rw,uid=1000,gid=1000 [share name] [path to the directory created in the previous step]

  • Accédez au gestionnaire "Applications de démarrage" et créez un nouveau démarrage avec la commande: xterm -e "/path/to/script/in/previous/step"

  • Définissez l'autorisation du fichier sur le fichier exécutable: chmod +x [file name].

  • Installez xterm Sudo apt-get install xterm.

Je me rends compte du risque de sécurité lié à la "saisie" du mot de passe Sudo. Cependant, dans cette situation, je suis le seul à avoir accès ou à vouloir exécuter cette machine virtuelle. J'ai jugé le risque faible. Évaluez votre situation avant de recourir à cette solution. De plus, je me souviens avoir lu que l'ajout d'un espace avant la commande empêchera la ligne de commande de stocker cette commande dans la liste d'historique.

Cette solution a fonctionné pour moi sur Ubuntu 18LTS. Je connais les travaux rc.local et chron, mais ceux-ci varient d’une version de la distribution à l’autre et cela semblait plutôt aléatoire. rc.local n’existe même pas dans mon installation et la création manuelle du fichier n’a rien apporté.

0
www139