Acredito que a resposta à sua pergunta esteja na chamada do sistema chroot(2)
. Você pode designar o shell de login do usuário como um utilitário que faz o chroot(2)
apropriado para esse usuário e executa um shell. O sistema de arquivos visível para o usuário seria o que estava configurado no chroot(2)
.