CGIプロセスにダイナミックにセキュリティコンテキストを割り当てる方法

selinux-usersのMLで流れてきた記事より。
400 Bad Request
通常のSELinuxの設定では、すべてのhttpdプロセスに対して一様な設定しかできなかったのだけれど、

  • httpdにもsetexeccon を実行できる権限を与える
  • Basic認証などの結果を利用して、特定のユーザについては、.htaccessに記述されたコンテキストを割り当てる

なるほど。
セキュリティコンテキストは、httpdのプロセスが起動するCGIのプロセスに割り当てられる。
ところで、コメント欄のやり取りで気になったのだが、setexecconのrevertはどのタイミングで行われるのだろう?起動してすぐ元に戻すなら、race conditionは起きないよね?

追記:最近なんでもErlangですが、spawnしたプロセスのコンテキストをいじれるとうれしいかな?

Apache httpdだと、workerスレッド(process)が再利用されたり、moduleで組み込みになっているmod_perl, mod_phpとかが実行主体だと話がややこしくなったりするので、Erlangみたいなシンプルなプロセスのシステムで何かできないか、そしてどこでスケールの壁があるのかを実感してみたい。
ただし、そもそもの話は、webサービスにおいて、コンテキストを与えるならば、その主体の認証とうまくつながってないとダメだよね。SELinuxUnixのシステムのユーザとは別のユーザ体系が構築できるんだから、その方向でうまくいかないかな。