SELinux, MySQL e memória compartilhada

1

Em um host do Oracle Linux 6 ativado pelo SELinux, tenho um produto que usa o MySQL como banco de dados subjacente e, através do banco de dados, está tentando acessar /dev/shm . /dev/shm monta com o contexto tmpfs_t , por padrão.

É claro que mysqld_t não tem direitos para tmpfs_t ...

A minha opinião é que a melhor solução é dar aos direitos de contexto mysqld_t a interação com tmpfs_t , pois mysqld_tmp_t e tmp_t já estão acessíveis.

Infelizmente, isso está se aprofundando nas ervas daninhas do SELinux do que a maioria das documentações. A maioria das dicas, incluindo o erro Red Hat 306351 , sugere que eu adicione uma opção de montagem a /dev/shm para montá-lo como tmp_t . Eu estou inclinado contra isso, porque eu acho que tmpfs_t é apropriado para /dev/shm .

Então, como eu dou o mysqld_t type read() , write() , getattr() , setattr() , etc., acesso a tmpfs_t ?

    
por dafydd 12.04.2016 / 23:36

1 resposta

0

Parece que a melhor escolha não é fazê-lo manualmente, mas através de mais automação do SELinux.

grep mysqld /var/log/audit/audit.log | grep shm | audit2allow -M mysql_tmpfs

semodule -i mysql_tmpfs.pp

A página do manual audit2allow (8) diz que o argumento -M usa a próxima string como o novo módulo nome. Entre isso e a página man do semodule (8) , eu quero usar um nome de módulo que ainda não existe . Dessa forma, evito substituir acidentalmente um módulo mais completo por meu one-off.

    
por 14.04.2016 / 16:46

Tags