Quotidien Shaarli

Tous les liens d'un jour sur une page.

March 31, 2021

Note: Fail to start systemd service on LXC

Les logs susceptibles d'apparaître pour un service systemd dans un conteneur LXC :

Mar 31 15:19:26 MYHOST systemd[7683]: MY_APP.service: Failed to set up mount namespacing: Permission denied
Mar 31 15:19:26 MYHOST systemd[7683]: MY_APP.service: Failed at step NAMESPACE spawning /usr/sbin/MY_APP: Permission denied

Les logs Apparmor susceptibles d'apparaître sur l'hôte :

Mar 31 13:19:26 ks10 audit[15289]: AVC apparmor="DENIED" operation="mount" info="failed flags match" error=-13 profile="lxc-42_</var/lib/lxc>" name="/run/systemd/unit-root/" pid=15289 comm="(MY_APP)" srcname="/" flags="rw, rbind"
Mar 31 13:19:26 ks10 kernel: audit: type=1400 audit(1617196766.574:196): apparmor="DENIED" operation="mount" info="failed flags match" error=-13 profile="lxc-42008_</var/lib/lxc>" name="/run/systemd/unit-root/" pid=15289 comm="(MY_APP)" srcname="/" flags="rw, rbind"

Les solutions pour "résoudre" ce problème :

  1. Activer l'option nesting pour ce conteneur LXC.
  2. Modifier les options du service systemd :
    • Tester les différentes options :
      PrivateDevices=no
      PrivateMount=no
      PrivateTmp=no
      NoNewPrivileges=no
      ProtectHome=no
      ProtectSystem=no
      ProtectKernelTunables=no
      ProtectKernelModules=no
      ProtectControlGroups=no
    • Puis recharger la configuration de systemd :
      sudo systemctl daemon-reload
    • Et redémarrer le service :
      sudo systemctl restart MY_APP.service