web-dev-qa-db-fra.com

Problème d'isolement des conteneurs LXD?

Je joue avec des conteneurs LXD et je n'arrive pas à comprendre complètement ce qui se passe avec l'isolement. Voici mon scénario:

  1. créer un conteneur 16.04 launch ubuntu:16.04 mycontainer
  2. installez firefox dedans lxc exec mycontainer /bin/bash et apt install firefox
  3. créer un utilisateur avec le même nom que mon utilisateur système principal adduser myuser
  4. ssh-copy-id à cet utilisateur vi /etc/sshd_config pour autoriser ssh avec mot de passe, puis depuis la session principale ssh-copy-id myuser@mycontainer-ip
  5. ssh -X dans le conteneur et lancez firefox ssh -X myuser@mycontainer-ip et firefox

Si je n'ai pas Firefox ouvert dans ma session principale, un Firefox isolé apparaît: pas d'accès à mes fichiers de session principale, pas de plugin, etc ...

Mais, si Firefox est déjà en cours d'exécution dans ma session principale, le lancement de FF à partir de ma session ssh -X dans le conteneur ouvre une autre fenêtre FF qui n'est pas isolée et s'exécute en tant que mon utilisateur principal (avec mes plugins, l'accès aux fichiers, etc ... ).

Qu'est-ce qui se passe ?

1
alci

J'ai ouvert un rapport de bogue sur le github de lxd et Stéphane Graber m'a donné la réponse: c'est une fonctionnalité de Firefox, qui peut être basculé avec le --no-remote commutateur. Alors bien sûr pas de problème avec LXD!

Citant Stéphane:

Je n'ai pas utilisé Firefox depuis longtemps, mais je pense qu'ils ont du code pour trouver et interagir avec un Firefox existant via les propriétés X.

Puisque vous passez "-X", votre conteneur a accès à votre serveur X et peut donc interroger/définir les propriétés X, lister toutes les fenêtres en cours d'exécution, ... ce qui est très probablement la façon dont firefox détecte une session firefox existante et lui fait ouvrir une nouvelle plutôt que d'engendrer un nouveau processus.

Je m'attendrais à ce qu'il y ait une option de ligne de commande pour Firefox pour qu'il ne le fasse pas.

se https://github.com/lxc/lxd/issues/3049

Lancement donc firefox --no-remote du conteneur empêche Firefox d'ouvrir une nouvelle fenêtre dans ma session principale.

3
alci