Procurando por uma sobreposição de sistema de arquivos usando LD_PRELOAD

4

Eu estou procurando uma biblioteca compartilhada que deve ser carregada usando o LD_PRELOAD que modificaria a visão do sistema de arquivos para o programa cliente.

Idealmente, eu gostaria de escolher a raiz do sistema de arquivos (ou usar / como root) e sobrepor o sistema de arquivos renomeando nomes de arquivos.

Por exemplo, talvez eu queira dizer ao meu programa para procurar por / usr / lib / * em / usr / lib32 / *.

Você conhece algum programa desse tipo?

Obrigado.

    
por user36520 21.05.2010 / 12:12

2 respostas

0

Há AVFS , que é um pouco parecido com isso, mas eu certamente não recomendaria a técnica para qualquer coisa consciente de segurança, desde que você teria que corrigir todas as coisas presentes e futuras biblioteca que arquivos frob ...

Uma abordagem alternativa pode ser fazer o farm chroot / bind-mount. Isso também tem a vantagem que você pode montar - ligar coisas somente para leitura, o que é legal.

    
por 29.03.2011 / 16:37
0

PlasticFS pode ajudar, embora eu pense (da leitura, eu não tentei ) Ele permite que você crie efetivamente um sistema de arquivos sintético em algum ponto de montagem (como FUSE, mas usando LD_PRELOAD).

Portanto, você pode, por exemplo, criar uma raiz sintética em /tmp/myfs , mas ainda assim seria necessário uma ferramenta semelhante a chroot para apresentar esse local construído como se fosse a raiz do sistema de arquivos. fakechroot é uma escolha óbvia para não exigir root, mas também usa LD_PRELOAD , então não tenho certeza se as duas ferramentas confundem um ao outro.

Atualização: É um pouco confuso, mas eu já tentei agora - versões de plasticfs até e inclusive 1.11 usam LD_PRELOAD (e de fato incluem um filtro "chroot", então você não usa não precisa usar fakechroot). Então, isso pode ser o que você quer, mas:

  • não funcionou muito bem nos meus testes (arquivos criados não deveriam, arquivos perdidos que deveriam estar lá)

  • lançamentos mais recentes (o 1.11 foi lançado em 2007, até 1.14 agora) abandonaram o LD_PRELOAD totalmente para o FUSE e um par de comandos mount e umount stateful, que também eliminaram a capacidade de usá-lo como chroot.

por 05.01.2013 / 02:48