SELinux impedindo o acesso a / var / log devido ao Docker

2

Eu tenho um contêiner do Docker que deve ler logs, incluindo os do próprio host. Então montei o volume /var/log usando o z flag. Isso altera o contexto do SELinux nos arquivos dentro de /var/log , o que impede que meu processador comum acesse esses arquivos, sendo que o resultado final é que não consigo efetuar login localmente:

kernel: type=1400 audit(14958482): avc: denied { open } for pid=12345 comm="agetty" name="/var/log/wtmp" dev="dm-6" ino=134 scontext=system_u:system_r:getty_t:s0-s0:c0.c1023 tcontext=system_u:object_r:svirt_sandbox_file_t:s0 tclass=file

Qual é a melhor prática aqui? Desativar o SELinux, enquanto se livra do problema, não é uma opção.

    
por Christoffer Reijer 18.04.2016 / 11:22

1 resposta

1

restorecon -R /var/log pode corrigir o problema de não-login, pois ele retornará todos os rótulos dessa árvore para o padrão.

A correção a longo prazo é modificar a política do SELinux para permitir que contêineres do Docker leiam o conteúdo de / var / log. O link é um exemplo de como fazer isso. Se você colocar tudo de volta e tentar a leitura novamente, você pode usar audit2allow -r para gerar a política necessária para você.

Se você estiver executando o Chef, poderá usar o link para fazê-lo também.

(E kudos por não seguir a rota just-disable-it)

    
por 02.06.2017 / 02:46