у меня есть 2 сайты / приложения на сервере; проприетарное приложение и Nextcloud. Nextcloud будет использовать files_external
плагин хранения, который позволяет местный монтирует, но я НЕ хотите, чтобы он мог просматривать и просматривать исходный код проприетарного приложения ... таким образом mod_selinux
и детей-седименов.
я использую mod_selinux
для создания дочерних доменов, и я назначаю дочерний идентификатор каждому из сайтов и помечаю соответствующие каталоги приложений и данных соответственно в их определениях vhost ...
httpd.conf
selinuxServerDomain *:s0-s0:c0.c100
proprietary.vhost.conf
selinuxDomainVal *:s0:c10
nextcloud.vhost.conf
selinuxDomainVal *:s0:c20
Каталог приложения, в котором находится код, имеет следующие разрешения и контексты ...
drwxr-x---. 4 apache apache unconfined_u:object_r:httpd_sys_content_t:s0:c10 4096 Jan 17 17:02 proprietary_app_dir
drwxr-x---. 15 apache apache unconfined_u:object_r:httpd_sys_content_t:s0:c20 4096 Jan 20 08:09 nextcloud
Эта проблема... Все работает, но проблема в том, что я все еще могу просматривать папку проприетарного приложения с помощью nextcloud, даже если в каталоге проприетарного приложения есть контекст домена, ограниченный s0:c10
, а поскольку виртуальный хост определен, Nextcloud должен работать как s0:c20
.
Я знаю, что SELinux выполняет свою работу, потому что я не могу просматривать такие папки, как / etc, хотя Другой у пользователей есть права на чтение, я могу просматривать только папки с контекстами httpd_sys_(rw_)content_t
как этому следовало быть.
Я ожидал, что дочерний процесс c20
не должен иметь возможность читать папку, запрашивающую c10
. Итак, единственное, о чем я могу думать, это то, что порожденные дети httpd_t
(через mod_selinux
) не используют selinuxDomainVal
контексты, которые я определил в файлах vhost.
Я не уверен, что я сделал не так, я как-то неправильно это сконфигурировал или забыл шаг? Буду признателен за любую помощь, которую вы можете предложить.
Дополнительная информация ...
Nextcloud - это программное обеспечение на основе PHP, не знаю, как работает ваша проприетарная программа (может быть, также и PHP?). Фактический просмотр каталогов в Nextcloud происходит с использованием PHP, в вашем случае с использованием PHP-FPM из того, что я получил. Я предполагаю, что вы либо используете один и тот же пул PHP-FPM для обоих VHosts, либо контекст SELinux PHP-FPM одинаков для обоих пулов. Даже мое предположение может быть неверным, вы должны предоставить здесь также подробную информацию о вашей конфигурации PHP и о том, что вы сделали (или не сделали) в отношении SELinux.