Como falsificar / zombar de um diretório usado por um aplicativo binário como outro diretório?

9

Suponha que haja um aplicativo binário que sempre grava seus dados em /tmp .

Como eu poderia falsificar / simular /tmp por causa deste binário como algum outro diretório (por exemplo, home/tmp )?

Vamos supor que eu não tenha meios de modificar este binário para forçá-lo a usar um diretório diferente.

    
por Nobilis 04.06.2014 / 16:33

2 respostas

11

Você pode executar o aplicativo em um ambiente chroot , ou seja, o / que o aplicativo vê não é o% real/. Você cria uma hierarquia completa do sistema de arquivos e monta ( --bind ) tudo o que precisa nela. O ponto relevante é: Você pode montar o ~/tmp real para o /tmp no ambiente chroot .

Em vez de usar chroot (que requer privilégios de superusuário), você pode fazer mais ou menos o mesmo com os contêineres do Linux ( lxc ). Não estou familiarizado com lxc , mas como é um processo normal do usuário para o sistema host, você não precisa ser o superusuário para tais configurações dentro do contêiner.

    
por 04.06.2014 / 16:54
8

A maioria dos softwares compatíveis com POSIX honram a variável de ambiente TMPDIR , por exemplo.

env TMPDIR=~/mytmp  /path/to/application
    
por 04.06.2014 / 18:21

Tags