Il programma parrot può fare ciò che chiedi:intercettare le chiamate di sistema e reindirizzare determinati percorsi (ad esempio, tutti i percorsi che iniziano con /anonftp vengono rimappati per accedere in modo trasparente ai file remoti tramite FTP). Funziona anche interamente nello spazio utente.
Tuttavia, nonostante una serie impressionante di protocolli di rete comuni e non comuni, parrot non ha alcun modulo per eseguire simplefilesystem-> riscrittura del filesystem come richiesto. Dovrebbe essere abbastanza semplice da aggiungere, se conosci un po' di programmazione in linguaggio C.
In alternativa, bindfs (che gira sopra FUSE), funziona come mount --bind nello spazio utente. (Ma questo va nella direzione opposta rispetto al reindirizzamento /home a /fake-home come dici nella tua domanda.)
Puoi usare PRoot quasi allo stesso modo del tuo esempio:
proot -b /fake-home:/home ls /home
A differenza di BindFS/FUSE, PRoot è in grado di associare file e directory che non possiedi.