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?