Le programme perroquet peut faire ce que vous demandez :intercepter les appels système et rediriger certains chemins (par exemple, tous les chemins commençant par /anonftp
sont remappés pour accéder de manière transparente aux fichiers distants via FTP). Il s'exécute également entièrement dans l'espace utilisateur.
Cependant, malgré un éventail impressionnant de protocoles réseau courants et inhabituels, parrot
n'a pas de module pour faire une réécriture simplefilesystem->filesystem comme vous le demandez. Cela devrait être assez simple à ajouter, si vous connaissez un peu la programmation en langage C.
Alternativement, bindfs (qui s'exécute au-dessus de FUSE), fonctionne comme un mount --bind
dans l'espace utilisateur. (Mais cela va dans le sens inverse par rapport à la redirection /home
à /fake-home
comme vous le mentionnez dans votre question.)
Vous pouvez utiliser PRoot presque de la même manière que dans votre exemple :
proot -b /fake-home:/home ls /home
Contrairement à BindFS/FUSE, PRoot est capable de lier des fichiers et des répertoires que vous ne possédez pas.