私は2つ持っていますサイト/アプリサーバー、専用アプリ、Nextcloudです。Nextcloudはfiles_external
ストレージプラグインを使用して、地元マウントしますが、私はない独自のアプリのソースを参照して表示できるようにしたい...したがってmod_selinux
、sedomain の子。
私はmod_selinux
ドメインの子を作成するために使用しており、各サイトに子 ID を割り当て、それぞれの vhost 定義でそれぞれのアプリとデータ ディレクトリにラベルを付けています...
confファイル
selinuxServerDomain *:s0-s0:c0.c100
独自の.vhost.conf
selinuxDomainVal *:s0:c10
次のクラウド
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を使用してプロプライエタリアプリのフォルダを参照できることです。vhosts0:c10
が定義されている限り、Nextcloudすべきとして実行しますs0:c20
。
SELinuxが機能しているのは、/etcのようなフォルダが表示されないからです。他のhttpd_sys_(rw_)content_t
ユーザーに読み取り権限が与えられているため、コンテキストが適切な フォルダーのみを表示できます。
の子プロセスが、c20
を要求するフォルダーを読み取ることはできないはずです。したがって、考えられる唯一のことは、を介して生成された の子が、vhost ファイルで定義したコンテキストを使用していないc10
ということです。httpd_t
mod_selinux
selinuxDomainVal
何を間違えたのかわかりません。設定を間違えたのでしょうか、それとも手順を忘れたのでしょうか? ご協力いただければ幸いです。
追加情報...
- セントOS8
- アパッチ2.4.37
- PHP 7.3 (remi 経由)
- PHP-FPM
- mod_selinux (Fedora 31 からの再パッケージ化された RPM)
答え1
Nextcloud は PHP ベースのソフトウェアですが、あなたのプロプライエタリ版がどのように動作するかはわかりません (おそらくこれも PHP でしょうか)。Nextcloud での実際のディレクトリ ブラウジングは PHP を使用して行われますが、私が理解している限りでは、あなたの場合は PHP-FPM を使用しています。両方の VHost に同じ PHP-FPM プールを使用しているか、両方のプールで PHP-FPM SELinux コンテキストが同じであると想定します。私の想定が間違っている可能性もありますが、PHP 構成と SELinux に関して行ったこと (または行わなかったこと) に関する詳細もここに提供する必要があります。