Кто такие soundd демоны, и почему nginx нужен тип под SELinux?

Любопытный, кто такой soundd демон. Wiki по http://wiki.centos.org/TipsAndTricks/SelinuxBooleans говорит, что это - "soundd демон", но я не нахожу много дополнительной информации в Интернете.

Для получения nginx (настроенный для привязывания сокета Unix) для запуска с systemctl, я должен добавить правило принудительного присвоения типов о httpd_t к soundd_port_t:tcp_socket. Более конкретно:

 sudo systemctl status nginx.service

сбои с сообщением:

nginx.service - The nginx HTTP and reverse proxy server
  Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled)
  Active: failed (Result: exit-code) since Mon 2015-07-13 19:53:57 EDT; 7s ago
 Process: 2699 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=1/FAILURE)

Jul 13 19:53:57 localhost.localdomain nginx[2699]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
Jul 13 19:53:57 localhost.localdomain nginx[2699]: nginx: [emerg] bind() to 0.0.0.0:8000 failed (13: Permissi...ied)
Jul 13 19:53:57 localhost.localdomain nginx[2699]: nginx: configuration file /etc/nginx/nginx.conf test failed
Jul 13 19:53:57 localhost.localdomain systemd[1]: nginx.service: control process exited, code=exited status=1
Jul 13 19:53:57 localhost.localdomain systemd[1]: Failed to start The nginx HTTP and reverse proxy server.
Jul 13 19:53:57 localhost.localdomain systemd[1]: Unit nginx.service entered failed state.

Затем я делаю:

sudo cat /var/log/audit/audit.log | audit2allow

и см.:

#============= httpd_t ==============
allow httpd_t soundd_port_t:tcp_socket name_bind;

После импорта этого модуля nginx может запуститься.

1
задан 15 July 2015 в 00:31
2 ответа

Если вы выполните следующую команду, вы Вы увидите, что порт 8000 / tcp определен в SELinux как soundd_port_t :

# semanage port -l | grep soundd
soundd_port_t                  tcp      8000, 9433, 16001

Это не означает, что nginx имеет какое-либо отношение к soundd, просто он пытается привязаться к порту 8000 tcp. Предлагаем вам использовать диапазон портов, выделенный для использования nginx / прокси, http_cache_port_t :

# semanage port -l | grep http_cache_port_t
http_cache_port_t              tcp      8080, 8118, 8123, 10001-10010

Если вы слушаете порт 8080 вместо 8000, вам не придется перестраивать политику SELinux.

4
ответ дан 3 December 2019 в 17:05

После нескольких часов поиска в этой статье , которая оказалась полезной для пользователей CentOS

, я прочитал всю статью, но я считал, что проблему решили следующие команды:

yum install -y policycoreutils-{python,devel}
ausearch -m avc -se httpd_t | audit2allow -M nginx
semodule -i nginx.pp
usermod -a -G user nginx
chmod g+rx /home/user/

Для предоставления разрешений замените пользователя своим фактическим пользователем. То же самое относится к каталогу под командой chmod.

1
ответ дан 3 December 2019 в 17:05

Теги

Похожие вопросы