6135 links
  • GuiGui's Show
  • Home
  • Login
  • RSS Feed
  • ATOM Feed
  • Tag cloud
  • Picture wall
  • Daily
Links per page: 20 50 100
 
  • Ubuntu 20.04 : chromium ne fonctionne pas si le dossier personnel est monté en NFS ou si son chemin est inhabituel

    Sur notre parc Ubuntu 20.04, chromium ne fonctionne pas. Chromium est installé avec snap. L'ensemble pose deux problèmes :

    • Le profil AppArmor livré ne prend pas en charge les homedirs situés ailleurs que dans /home/ et/ou montés en NFS (non, il ne suffit pas de configurer les variables dans /etc/apparmor.d/tunables/home.d, lire ci-dessous pour les détails) ;

    • Indépendamment d'AppArmor (le désactiver ne résout pas le problème), snap ne semble pas gérer des homedirs (dossier personnel) montés en NFS. Voir : https://bugs.launchpad.net/ubuntu/+source/snapd/+bug/1662552 et https://bugs.launchpad.net/ubuntu/+source/snapd/+bug/1884299.

    On notera également que le dossier Téléchargements se trouve dans ~/snap/chromium/current/Téléchargements. Super pratique pour un utilisateur !

    Au final, on a installé Google Chrome (qui n'est pas diffusé via snap) et basta. :( On a autre chose à faire que de compiler chromium régulièrement depuis les sources et on n'a pas trouvé de dépôt apt à jour et de confiance (ce qui permettrait de nous passer de snap).



    Démarche (tests effectués) et découverte d'AppArmor :

    • Chemin vers homedir = /home/$uid + absence de NFS : chromium démarre ;

    • Chemin vers homedir = /home/$uid + NFS : chromium ne démarre pas, erreur « cannot open path of the current working directory: Permission denied » ;

      • cd /tmp/ && chromium-browser : chromium démarre (+ snap écrit dans $HOME/snap ! Je croyais que t'arrivais pas à y accéder ?!) ;
    • Chemin vers homedir = /home/$nas/$categorie/$uid + NFS : même comportement et même erreur ;

      • cd /tmp && chromium-browser : chromium ne démarre pas, erreur « cannot create user data directory: /home/$nas/$categorie/$uid/snap/chromium/1753: Permission denied ». En fonction de la configuration d'AppArmor (voir ci-dessous), l'erreur peut aussi être « cannot create user data directory: /home/$nas/$categorie/$uid/snap/chromium/1753: Stale file handle ».



    Le dernier point est lié au profil AppArmor /var/lib/snapd/apparmor/profiles/snap-confine.snapd.12883.

    • Si je désactive totalement AppArmor (ajouter apparmor=0 dans GRUB_CMDLINE_LINUX_DEFAULT dans /etc/default/grub puis lancer update-grub2 puis redémarrer), je n'ai plus de problème pour lancer chromium depuis /tmp (ou autre endroit sans NFS). Sur le web, on lit que la commande systemctl disable apparmor et un redémarrage permettent de désactiver AppArmor : ce n'est pas exact ;

    • Si je passe le profil en mode complain (geindre dans les journaux sans rien bloquer), chromium démarre toujours quand pwd = /tmp. Comme le profil n'est pas dans /etc/apparmor.d, la commande aa-complain /snap/snapd/12883/usr/lib/snapd/snap-confine sort en erreur « Profile for /snap/snapd/12883/usr/lib/snapd/snap-confine not found, skipping » (idem avec « /var/lib/snapd/apparmor/profiles/snap-confine.snapd.12883 »). Pour passer outre : ln -s /var/lib/snapd/apparmor/snap-confine.snapd.12883 /etc/apparmor.d/ && aa-complain /snap/snapd/12883/usr/lib/snapd/snap-confine. Quid de la pérennité ? « 12883 » dans le nom du profil est la révision de snapd… qui changera lors des mises à jours… ;

    • Si je passe le profil en mode complain, je m'aperçois qu'AppArmor empêche snap d'accéder à /home/ et /home/$nas en lecture ainsi que d'envoyer des messages réseau pour accéder à notre NAS en NFS. Pour débrayer le premier problème, il faut ajouter les lignes /home/ r, et /home/$nas/ r, dans le profil. Pour NFS, il faut ajouter une ligne network, dans le profil. Puis je recharge le profil avec apparmor_parser -r /var/lib/snapd/apparmor/profiles/snap-confine.snapd.12883 (on lit souvent que systemctl reload apparmor fait le job, mais c'est incorrect). Quid de la pérennité ? « 12883 » dans le nom du profil est la révision de snapd, donc le nom du profil (et/ou son contenu) changera lors des mises à jours… ;

    • Il est vain de désactiver le profil (ln -s /var/lib/snapd/apparmor/profiles/snap-confine.snapd.12883 /etc/apparmor.d/disable/ + reboot), le lancement de chromium génerera l'erreur « snap-confine has elevated permissions and is not confined but should be. Refusing to continue to avoid permission escalation attacks » ;

    • Il n'est pas possible de désinstaller AppArmor car snapd dépend de lui et chromium dépend de snapd…
    September 21, 2021 at 11:45:01 PM UTC - permalink - http://shaarli.guiguishow.info/?3IRy2Q
Links per page: 20 50 100
 
Mentions légales identiques à celles de mon blog | CC BY-SA 3.0

Shaarli - The personal, minimalist, super fast, database-free, bookmarking service by the Shaarli community