動的オブジェクトクラス番号の割当て

http://marc.theaimsgroup.com/?t=117309835000001&r=1&w=2
SE-PostgreSQLをアナウンスしたスレッドでの話題。

SE-PostgreSQLのように新しくオブジェクトクラスを追加した場合、
標準のセキュリティポリシーでは定義されていない
→ libselinux-develの提供するヘッダファイルに含まれていない
→ 自前で #define する必要がある
→ そのうち、本流で新しいオブジェクトクラスが追加されて競合する
ひでぶ

という流れになることが容易に想像できる。

で、オブジェクトクラスの番号を早く確定したい〜という泣きを入れた時の Stephen からの返事に面白い構想が。

But in the long term, we want to move away from using #define's
altogether and have the object managers dynamically map the class and
permission string names during startup to values via libselinux
functions (which in turn can use a selinuxfs node or an auxiliary policy
file to get the information).
クラス名(文字列)をキーにして、クラス番号を動的に生成するという構想があるようだ。

確かにこういう機構で統一されると非常に助かる
なんせ、Fodora core 6とFedora developに入ってるセキュリティポリシーの間でオブジェクトクラスの数が違うくらいだから、内部的に利用する SECCLASS_DATABASE の定数を何に定義するかで非常に迷う。

素晴らしい提案なので、SELinux側での準備が整い次第実装に移したいものだ。