Como evitar que o aplicativo grave no disco?

1

Eu quero executar um aplicativo no meu servidor, mas não quero que esse aplicativo modifique nenhum arquivo. Espero que o aplicativo leia arquivos e envie para stdout / stderr. No entanto, não sei exatamente o que o aplicativo pode tentar fazer porque foi fornecido a mim por outra pessoa.

Qual é a maneira mais fácil de realizar isso no Linux? Estou executando o Red Hat 5.

Uma maneira de pensar é criar um novo usuário que tenha acesso apenas no nível de leitura. Existe outra maneira de fazer isso sem criar um usuário?

    
por Victor Lyuboslavsky 11.05.2013 / 17:24

1 resposta

2

Você pode usar o comando chroot para restringir o processo a um diretório de sandbox.

Se copiar os arquivos necessários não for viável: Use "bind mount" para criar um link de dentro do diretório chroot para o sistema de arquivos externo. Execute o comando mount fora do chroot.

mount /external/path /chroot/sandbox/ref_to_external -o bind

Como você sugeriu: Você pode executar seu aplicativo como outro usuário:

/bin/su - limitedUser -c "/path/to/xxxx"

Explicação:

 /bin/su : switch user
 - : option to su, make it a login session (source profile for the user)
 limitedUser : user to become
 -c "/path/to..." : command to run

Certifique-se de que limitedUser pertence a um grupo que só tenha lido + executar mas sem direitos de gravação.

    
por 11.05.2013 / 19:24