FAQs - CentOS 7 - CentOS Wiki

У меня сайт использует nginx в качестве веб-сервера. При включенном selinux не работает и в лог /var/log/audit/audit.log пишет:

type=AVC msg=audit(1493885790.745:101): avc:  denied  { name_connect } for  pid=950 comm="php-fpm" dest=6379 
scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:redis_port_t:s0 tclass=tcp_socket

type=SYSCALL msg=audit(1493885790.745:101): arch=c000003e syscall=42 success=no exit=-13 a0=6 a1=7f2ba3c67060 
a2=10 a3=590ae35e items=0 ppid=684 pid=950 auid=4294967295 uid=995 gid=993 euid=995 suid=995 fsuid=995 egid=993 
sgid=993 fsgid=993 tty=(none) ses=4294967295 comm="php-fpm" exe="usr/sbin/php-fpm" 
subj=system_u:system_r:httpd_t:s0 key=(null)

Посмотреть политики можно командой 

getsebool -a

abrt_anon_write --> off
abrt_handle_event --> off
abrt_upload_watch_anon_write --> on
antivirus_can_scan_system --> off
antivirus_use_jit --> off
auditadm_exec_content --> on
authlogin_nsswitch_use_ldap --> off
...

 

Попробуйте для начала разрешить доступ к портам системы:

setsebool -P httpd_can_network_connect on

На CentOS 7 работает сервер баз данных postgresql. В pg_hba.conf доступ разрешен, но selinux не пускает.

Попробуйте выставить разрешения.

setsebool -P httpd_can_network_connect_db 1
setsebool -P httpd_can_network_db 1

В Centos 7 не могу найти команды semanage?

Semanage инструмент для управления политиками в selinux. Чтобы установить его, выполните:

yum install policycoreutils-python

 

Selinux, по умолчанию, разрешает файлы для веб сервера хранить в определенных местах, например /var/www/html. У меня размер диска под корень меньше чем раздел для домашних директорий, как selinux донести, что корень сайта в другом будет месте?

Создаем новую директорию, для примера:

mkdir /var/www
mkdir /var/www/html

далее в конфигурационном файле вашего веб сервера (apache, nginx ...) прописываете путь до новой директории и:

setsebool -P httpd_enable_homedirs 1
chcon -R -t httpd_sys_content_t /home/www/html

Полезность 

Новая проблема, форма на сайте загружает файлы на сервер в папку - /home/www/html/upload/files, но включенный selinux запрещает это сыпя проклятиями в лог /var/log/audit/audit.log

Укажем selinux папку, в которую разрешено из вне закачивать файлы:

chcon -R -h -t httpd_sys_script_rw_t /home/www/html/upload/files

Как перезапустить GNOME 3

service gdm status
service gdm stop
service gdm start

Как перезапустить X-ы

Для начала перейдите в консоль (на F1 работают X) - например Ctrl+Alt+F2.

Залогинтесь под root.

init 3 && init 5

то есть - погасить иксы и, если успешно, запустить иксы.

Автор: Александр