Linux/selinuxインストール
ナビゲーションに移動
検索に移動
selinuxインストール
sudo dnf install -y selinux-policy sudo dnf install -y selinux-policy-targeted sudo dnf install -y policycoreutils sudo dnf install -y policycoreutils-python-utils sudo dnf install -y libselinux sudo dnf install -y libselinux-utils sudo dnf install -y libselinux-python3
キャッシュ再生成
fixfiles onboot
書き込みエラーが発生するとき
例:phpのSmartyでのエラーが出る
エラー詳細
Uncaught SmartyException: unable to write file
対策は、上記項目のように、selinuxをインストール
設定
書込dirのselinuxの設定(一時的)
chcon -R -t httpd_sys_rw_content_t \ /var/www/zend/project1-test/application/modules/default/views/templates_c chcon -R -t httpd_sys_rw_content_t \ /var/www/zend/project1-test/application/modules/admin/views/templates_c
書込dirのselinuxの設定(永続)
semanage fcontext -a -t httpd_sys_rw_content_t \ "/var/www/zend/project1-test/application/modules/default/views/templates_c(/.*)?" semanage fcontext -a -t httpd_sys_rw_content_t \ "/var/www/zend/project1-test/application/modules/admin/views/templates_c(/.*)?"
反映
restorecon -Rv /var/www/zend/project1-test/application/modules/default/views/templates_c restorecon -Rv /var/www/zend/project1-test/application/modules/admin/views/templates_c
書込dirのselinuxの設定確認
semanage fcontext -l | grep templates_c
書込dirのselinuxの削除設定(永続)
semanage fcontext -d "/var/www/zend/project1-test/application/modules/default/views/templates_c(/.*)?"
selinuxを一時的に切る
一時的に切る
$ sudo setenforce 0
確認
$ getenforce Permissive
戻す
$ sudo setenforce 1 $getenforce Enforcing
selinuxを切る(自動起動オフ
vi /etc/selinux/config
-SELINUX=enforcing +SELINUX=disabled
でリブート
本番では行わないこと、セキュリティが一段さがる。
httpで、html公開位置が、本来の位置じゃないときは
例:/var/www/html/public
restorecon -Rv /var/www/html/public # ドキュメントルートの位置が変わってるとき restorecon -Rv /var/www/html # html以下に読み込み処理があれば
本来の位置を設定して、更新する。
zendのときは
例:/var/www/zend/project1-test/public
semanage fcontext -a -t httpd_sys_content_t "/var/www/zend/project1-test(/.*)?" restorecon -Rv /var/www/zend/project1-test semanage fcontext -a -t httpd_sys_content_t "/var/www/zend/project1(/.*)?" restorecon -Rv /var/www/zend/project1
publicからvenderを呼ぶときとかエラーになるので、プロジェクトの下を全てにする。
semanageのリストを表示
sudo semanage fcontext -l | grep project1
外部http通信やmysqlやredisなどを許可する
sudo setsebool -P httpd_can_network_connect on