Journal podbox : sandboxing d'applis avec podman

Posté par  (Mastodon) . Licence CC By‑SA.
8
11
juin
2020

Le projet fedora propose toolbox pour pouvoir créer facilement des boites à outils indépendantes du système. C'est notemment utile apour disposer de tous les outils disponibles via dnf sans avoir besoin d'être root ou sans passer par rpm-ostree sous silverbox et pouvoir tout supprimer en un clin d'oeil une fois les tests/developpement terminé.

Néamoins ce n'est pas fait pour faire tourner des applications graphiques, et ne propose pas de sandboxing pour isoler par exemple le homedir de l'utilisateur. Et c'est là que je suis tombé sur podbox. Comme toolbox, il se base sur podman.

Petit exemple d'utilisation:

Créer la podbox (ici pour faire tourner un navigateur chromium):
podbox create chromium --gui --ipc --audio --net --map-user

Installation des applications qu'on désire faire tourner dans la podbox:
podbox exec chromium --root dnf install chromium -y

Création d'un fichier desktop dans ~/.local/share/applications:
podbox desktop create chromium "chromium-browser --no-sandbox" 'chromium in podbox' --icon chromium

chrome/chromium ne peuvent pas utiliser leurs propres sandbox dans un container, d'où l'option --no-sandbox

Optionnel, partager un répertoire :
podbox volume add chromium /home/thomas/Downloads --to /home/user/Downloads

Et pour finir au choix utiliser son launcher pour lancer l'application via le raccourci créé plus haut, soit utiliser la cli :
podbox exec chromium chromium-browser --no-sandbox

  • # Pas tout à fait

    Posté par  (site web personnel) . Évalué à 3.

    Néamoins ce n'est pas fait pour faire tourner des applications graphiques, et ne propose pas de sandboxing pour isoler par exemple le homedir de l'utilisateur. Et c'est là que je suis tombé sur podbox. Comme toolbox, il se base sur podman.

    En effet, dans le cas de Silverblue, l'objectif est que les outils de développement puissent accéder au /home.

    Par contre même si ce n'est pas le but premier, tout a été fait pour exécuter des applications graphiques. Mise en place d'un pont DBus, partage de la session graphique, etc. J'ai testé et ça fonctionne très bien.

    Même si idéalement Flatpak devrait être privilégié dans ce contexte.

    • [^] # Re: Pas tout à fait

      Posté par  (Mastodon) . Évalué à 2. Dernière modification le 11 juin 2020 à 16:20.

      Oui j'ai peut-être mal tourné la phrase. C'est effectivement possible mais ça n'a jamais été le but. Et moi je cherchais à pouvoir sandboxer complètement ou ne partager qu'une partie spécifique de mon home, par exemple pour les quelques applis proprios que j'utilises de temps en temps, ou pour faire facilement des tests d'une appli dans une version différente, avec des fichiers de conf qui peuvent aussi être différents.

      Et si j'utilise une fedora standard actuellement, je n'exclue pas de switcher à silverblue. Cet outil resterait pratique pour ce qui n'est pas dispo en flatpak.

      • [^] # Re: Pas tout à fait

        Posté par  . Évalué à 5.

        je cherchais à pouvoir sandboxer complètement ou ne partager qu'une partie spécifique de mon home,

        Il y a firejail qui fait ça.

        « Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche

  • # Hum

    Posté par  . Évalué à 1.

    Et comment installer par exemple, zoom, dedans et l'utiliser ? Je ne comprends pas bien…

    arnauld

    • [^] # Re: Hum

      Posté par  . Évalué à 9.

      Tu crées une image Docker avec Docker in Docker dans laquelle tu installe podman, de là tu peux créer une image avec snap dedans, tu installes Flatpak avec snap puis Zoom avec Flatpak.

    • [^] # Re: Hum

      Posté par  (Mastodon) . Évalué à 3.

      Dans l'exemple que j'ai donné, le point clef qui "personnalise" ta container, c'est la ligne podbox exec. Tu peux même executer un bash interactif et faire tous les téléchargements et install manuelles que tu souhaites.

    • [^] # Re: Hum

      Posté par  . Évalué à 2. Dernière modification le 12 juin 2020 à 07:31.

      podbox create zoom --gui --ipc --audio --net --map-user
      podbox exec zoom --root dnf install flatpak -y
      podbox exec zoom flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
      podbox exec zoom flatpak install us.zoom.Zoom
      podbox exec zoom flatpak run us.zoom.Zoom
      
      • [^] # Re: Hum

        Posté par  (Mastodon) . Évalué à 2. Dernière modification le 12 juin 2020 à 08:28.

        j'ai testé hier en téléchargeant le rpm et installant les quelques dépendances nécessaires. C'est vite trouvé avec dnf provides.

        • [^] # Re: Hum

          Posté par  . Évalué à 1.

          j'ai testé hier en téléchargeant le rpm et installant les quelques dépendances nécessaires. C'est vite trouvé avec dnf provides.

          Si tu utilises dnf pour installer un paquet qui tu as téléchargé, normalement il se débrouille tout seul pour installer les dépendances.

          Ceci dit, je fuis comme la peste les paquets rpms distribués par les éditeurs. Ils sont trop souvent bricolés et mal fichus, avec tout ce qu'il faut de contournements pour que ça tombe en marche.

          Pour la distribution des applications propriétaires, flatpak ou snap sont les solutions les plus solides.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.