web-dev-qa-db-ja.com

VM)でSELinuxのセキュリティコンテキストを設定した後でも、MySQL権限がエラーを拒否しました

私はMySQLをCentOSにインストールしています(詳細バージョンは以下にあります)。私のOSはVMマシンであり、物理マシンではありません。ディレクトリ/data/mysqlはローカルディスク(仮想)です。仮想化環境で追加の手順を実行する必要があると思われます。 。 リンクにはSELinuxと仮想化に関する情報があります ですが、MySQLに含める方法はわかりません。

MySQLは/var/lib/mysqlのデータディレクトリで正常に動作しますが、別のディスクの別のディレクトリに移動すると、機能しなくなります。一方、同じディスク上の異なるディレクトリが機能します。 SELinuxを無効にすると、MySQLは別のディスクで動作します。 SELinuxは別のドライブを制限しています。私は次の2つのリンクで与えられた解決策を試しました

特に、次の2つのコマンド:

$ semanage fcontext --add --type mysqld_db_t '/data/mysql(/.*)?'
$ restorecon -r /data/mysql

私が走ると:

$ ls -dZ /data/mysql

私は以下を得ます:

drwxr-xr-x. mysql mysql unconfined_u:object_r:mysqld_db_t:SystemLow 

それでも私は得続けます:

/ usr/sbin/mysqld:dirを「/ data/mysql /」に変更できません(エラーコード:13-アクセスが拒否されました)

他に何かする必要がありますか?

  • MySQL:mysql Ver 14.14 Distrib 5.6.14、Linux(x86_64)用EditLineラッパーを使用
  • OS:CentOSリリース6.4(最終版)
3
PAS

実行しているコマンドや、SELinuxに関して/data/mysqlの追加にどのように取り組んでいるかという点で、あなたが行っていることに直接問題はありません。

物事が適切に機能していることを確認するために、存在するかどうかを確認するか、手動でこの行を/etc/selinux/targeted/contexts/files/file_contexts.localに追加します。

/data/mysql(/.*)?   system_u:object_r:mysqld_db_t:s0

上記の手順を繰り返すと、期待どおりにその行がfile_contexts.localファイルに追加されました。

このRedhat固有のドキュメント 10.4.1。MySQLデータベースの場所の変更 で説明されている手順と比較して、実行している手順を再確認します。

1
slm

この問題は、MySQLdatadirが/ homeの下のどこかに移動されたときに、Debian9およびその他のsystemdベースのディストリビューションでSELinuxおよびAppArmorなしで発生する可能性があります。

この理由は、systemdサービスファイル(/lib/systemd/system/mariadb.service)にProtectHome = trueという設定が含まれているためです。この設定により、MySQLは/ homeの下のフォルダーに書き込むことができなくなり、起動時にErrNo 13:Permission Deniedエラーがスローされます。

修正は、データディレクトリを/ homeから移動するか、systemdサービスファイルでこのセキュリティ機能をオフにすることです。

1:Sudo cp /lib/systemd/system/mariadb.service/etc/systemd/system /#サービスファイルのローカルオーバーライドを作成します

2:編集/ etc/systemd/system/mariadb.serviceそしてProtectHomeをfalse(ProtectHome = false)。ファイルを保存します

3:Sudo systemdデーモン-リロード#systemdサービスを更新して、オーバーライドファイルが表示されるようにします

4:Sudo systemctl start mysql#そして最終的に開始するはずです

1

このエラーは、OS特権の問題が原因です。以下のコマンドを実行してください。

semanage fcontext -a -e /var/lib/mysql /opt/mysql
restorecon -R -v /opt/mysql
0
user5816728