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)マニュアルページでまだ存在していないモジュール名を使用したいと思います。これにより、ワンタイムモジュールをより完全なモジュールに誤って交換するのを防ぎます。

関連情報