O AppArmor funciona por executável. Não é possível descobrir que o Firefox carregou um perfil diferente e, portanto, deve usar um perfil diferente do AppArmor.
O AppArmor suporta regras de alteração , que permitem que um aplicativo seja altere qual perfil se aplica a ele . O caso de uso pretendido é precisamente permitir que um aplicativo mude para um perfil mais restritivo depois que ele for inicializado e descoberto o que ele precisa acessar nessa instância específica. Portanto, se o Firefox fosse compatível com o AppArmor, seria possível atribuir a regra change_profile
e fazer com que ela se aplicasse à transição assim que fosse determinado qual perfil executar. Tanto quanto sei, isso não foi feito.
O que você pode fazer sem programar é fazer várias cópias ou hard links do executável firefox-bin
, e definir perfis diferentes para cada um deles (o AppArmor é baseado no caminho para o executável, portanto hard links diferentes não precisam usar o mesmo perfil, ao contrário do SELinux que é baseado em inodes). Isso requer raiz e não é tão conveniente, e é por isso que o recurso de mudança de perfil foi adicionado ao AppArmor.