SELinux, MySQL 및 공유 메모리

SELinux, MySQL 및 공유 메모리

SELinux가 활성화된 Oracle Linux 6 호스트에는 MySQL을 기본 데이터베이스로 사용하는 제품이 있으며 해당 데이터베이스를 통해 액세스하려고 합니다 . 이는 /dev/shm기본적으로 컨텍스트와 함께 설치됩니다 ./dev/shmtmpfs_t

물론 mysqld_t권리는 없습니다 tmpfs_t...

제 생각에는 가장 좋은 해결책은 이미 액세스 가능 하기 때문에 mysqld_t상황을 파악하고 상호 작용할 수 있는 권한을 부여하는 것입니다.tmpfs_tmysqld_tmp_ttmp_t

불행하게도 이는 대부분의 문서보다 SELinux에 더 깊은 영향을 미칩니다. 대부분의 팁에는 다음이 포함됩니다.Red Hat 오류 306351/dev/shm, 로 설치하기 위해 설치 옵션을 추가할 것을 제안했습니다 . 저는 이것이 적합 tmp_t하다고 생각합니다 .tmpfs_t/dev/shm

그렇다면 mysqld_t, , , 등의 접근 권한을 부여하는 방법은 무엇일까요?read()write()getattr()setattr()tmpfs_t

답변1

가장 좋은 옵션은 수동으로 수행하는 것이 아니라 더 많은 SELinux 자동화를 통해 수행하는 것입니다.

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

semodule -i mysql_tmpfs.pp

이것검토2허용(8)매뉴얼 페이지에는 -M인수가 다음 문자열을 새 모듈 이름으로 사용한다고 나와 있습니다. 그 사이와SE 모듈(8)매뉴얼 페이지에서 아직 존재하지 않는 모듈 이름을 사용하고 싶습니다. 이렇게 하면 일회성 모듈을 보다 완전한 모듈로 실수로 교체하는 것을 방지할 수 있습니다.

관련 정보