Aha! Eu perdi alguma coisa. Aparentemente, é sabido que o AppArmor não funciona em links simbólicos em geral. Copiar o executável do Python para / opt / python-sandbox funcionou bem.
Estou tentando proteger um processo específico do Python, dando acesso somente a comunicações de rede e a um número selecionado de arquivos no sistema de arquivos. Eu segui as instruções no site de documentação da comunidade do Ubuntu e no projeto do Chrom artigo sobre o sandbox .
No entanto, só quero bloquear alguns processos do Python. Para contornar isso, eu vinculei o executável do Python a outro local (chame-o de python sandbox
) e apliquei um perfil do AppArmor nele.
Quando eu abro python-sandbox
, ainda consigo abrir arquivos arbitrários no sistema de arquivos e ler a partir deles. O que há de errado?
Eu fiz o seguinte:
Criado um perfil do AppArmor da seguinte forma:
#include <tunables/global>
/opt/python-sandbox {
#include <abstractions/base>
#include <abstractions/fonts>
/proc/** r,
/usr/lib/python2.7/** r,
/usr/local/lib/python2.7/** r,
network,
}
Copiei para o diretório /etc/apparmor.d/
com o nome opt.python-sandbox
(já que o link simbólico é para /opt/python-sandbox
.
Executar apparmor_parser /etc/apparmor.d/opt.python-sandbox
.
Eu fiz algo errado? Devo considerar outra abordagem?