résoudre le gros problème de perfs lié au fait qu'on se retrouve à parser l'intégralité des bibliothèques dynamiques installées sur le système.=> plusieurs options:- soit on parse la string issue de-ldconfigsoiton fait en sorte que laldmapsoit une map de vec, et on ne parse que les lib dont on a besoin.- soit on parse directementld.so.cacheà la main sans passer parldconfiggérer le choix de l'ABI landlock qu'on va utiliser, sans juste utiliser le mode “best effort” de landlock parce qu'on veut un message qui s'affiche et qui dise à l'utilisateur qu'il n'est pas parfaitement sandboxé.faire le ménage dans les OsString dans elf_deps.rs => les remplacer par des pathbufrenommer elf_deps.rsgérer le cas où il n'y a pas de lib dynamiquement linkée (en ce moment ça panic, pour rien)Faire en sorte que le fichier de config soit utilisable pour plusieurs exécutables à la fois, avec des paramètres différents.- changer la hierarchie des privilèges pour s'éloigner du modèle de landun qui est trop simpliste (
--rwdonne beaucoup trop de droits qui ne sont pas utiles dans le cas général) change the path resolution workflow to match this (double check that this is howldddoes it)The linker checks RPATH/RUNPATH (if any).If not found, it checks LD_LIBRARY_PATH.If still not found, it looks up in /etc/ld.so.cache.If found, it loads the library from the cached path.If not found, it searches /lib and /usr/lib.
Work on error handlingpourquoi on a ld.so.cache dans la allowlist par défaut ?gérer le~dans lesandbox.tomlfusionnerlldetadd_exec=>auto_add_binary_dependencies, et faire en sorte que si c'est faux, on affiche la liste des dépendences qu'il faudrait ajouter à la main.refactorer le code desandbox::applygérer le LD_LIBRARY_PATH- faire marcher
cargodans la sandbox => il faut que je teste avec un kernel plus récent - faire marcher `rust-analyzer dans la sandbox
- faire marcher VSCode dans la sandbox
ajouter une liste d'exécutable dans la config (executables pour lequels le résolveur de dépendance ira sélectionner les lib dynamiques et les ajouter à la liste d'exclusion)- écrire un README
mettre un truc (dans lecargo.tomlj'imagine) pour préciser que cette crate est linux-onlyBUG: “adding read only executable” & “adding read-only” quand on met qqch en roxne pas passer les variables d'environnement par défaut au processus sandboxé, sauf certaines à déterminer (+ celles qu'on a explicitement demandé de passer)gérer le cas des/dans le nom de la dépendance à importer- mieux tester le module
elf_dependencies - mieux gérer l'extraction de l'architecture des dépendances (sans avoir à parser tout le binaire)
- parser
ld.so.cachepar moi-même, plutôt que d'utiliser ldconfig - traiter les warnings et passer un coup de clippy
- rebaser pour les fixups et publier sur github
améliorer la CLI- implement a
strictmode - add support for auditing with Landlock V7
- Add licence