回答:
はい、これを行うことができます。
SELinuxはラベリングシステムであり、ファイル(ユーザー、プロセスなど)に対してさまざまな操作を実行するためのアクセスは、元のプロセスのセキュリティコンテキストに基づいて許可されます。
定義する参照ポリシーは、プロセスのセキュリティコンテキストです。
# ps -defZ | grep httpd
system_u:system_r:httpd_t:s0 root 1085 1 0 21:22 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
この例では、セキュリティコンテキストには次の要素があります。
system_u
:SELinuxユーザーsystem_r
:SELinuxロールhttpd_t
:SELinuxタイプ強制属性。s0
:MLS / MCS範囲。デフォルトのターゲット以外のポリシーに関連します。また、プロセスがアクセスできるセキュリティコンテキストも定義します。
# ll -dZ /srv/www/html/
drwxr-s---. root apache system_u:object_r:httpd_sys_content_t:s0 /srv/www/html/
# sesearch -s httpd_t -t httpd_sys_content_t -c file -p read -Ad
Found 1 semantic av rules:
allow httpd_t httpd_sys_content_t : file { ioctl read getattr lock open } ;
上記の例では、ディレクトリのセキュリティコンテキストを指定すると、ラベル付けされたプロセスがラベル付けされたディレクトリへの読み取りアクセス権を持つことがポリシーで定義され/srv/www/html
ているsesearch(1)
場合に使用できます。httpd_t
httpd_sys_content_t
sesearch
その他のオプションについては、マンページを確認してください。
そのため、分岐したプロセスがその親によって開かれたファイルへのアクセスに制限されるようにするには、その操作を許可するポリシーが設定されていることを確認する必要があります。