On 09/12/2019 15:42, Frederic Dumas wrote:

Bonjour à tous,

Je cherche à mettre en cage une appli en la lançant dans un jail avec systemd.
Tu peus limiter les ressource, mais cela n'isole pas du namespace "global"
(tu peus aussi construire un cgroup à la main pour cela)

systemd-run --remain-after-exit    --property=CPUShares=200    --property=MemoryLimit=4G    --property=BlockIOWeight=100    --user -t  bash -c "DISPLAY=:0.0 LANG=fr_FR.UTF-8 nice -3 time thunderbird


Faut-il utiliser pour ça la commande systemd-nspawn ?

ca fonctionne de facon similaire a lxc: il te faut un system entier (sans le kernel et le boot)
ca démarre des lxc sans probleme fonctionnellement, c'est du chroot plus complet

Les exemples sur le web parlent de systemd-nspawn pour démarrer un second OS sur la machine, en parallèle de l'OS principal. Ça me paraît inutilement lourd pour mettre en cage un seul exécutable dont les dépendances dont déjà satisfaites sur la machine.

tu peus construire une arborescence copié à coup de mount --bind
( je ne suis pas alle au dela de l'expérimental )
ou te faire un "slim" systeme

Connaissez vous un billet de blog bien fichu qui me permettrait de fermer les mauvaises portes ? Ou quelqu'un fait-il tourner une appli dans un jail avec systemd et pourrait m'en parler ?


En expérimental, tu peus tenter le start en global puis le changement de namespace ( pour l'isolation) apres démarrage de l'application. ( par contre faut plus avoir besoin de charger quoi que ce soit (.so...) apres.


Tiens nous au courant, je pense que y'a du potentiel dans ce genre de manip.