Trusted Solaris 開発ガイド

ファイルシステムのラベル範囲

ファイルシステムのラベルの範囲は、ファイルシステムに含まれるデータの機密度の上限と下限を指定します。getcmwfsrange()fgetcmwfsrange() システムコールは、ファイルシステムの機密ラベル範囲の上限と下限を含む構造体を返します。

i ノードまたは vfstab_adjunct(4) 内のファイルシステムのセキュリティ属性を照会する方法は、第 2 章「プログラミングインタフェースの概要」「ファイルシステムのセキュリティ属性の照会」を参照してください。。

次の節では、プログラムがファイルシステムのラベル範囲を取得し、作業を継続する前に、機密ラベルをラベル範囲と照らしてテストする 2 つの事例を説明します。

ファイル CMW ラベルの変更前に範囲を確認する

前述の例で説明しているファイルの CMW ラベルの昇格を行う前に、ファイルの新しい機密ラベルがそのファイルの機密ラベルの範囲内であるか確認することをお勧めします。

次の例は、ASCII 文字列を新しいバイナリの機密ラベルに変換し、ファイルシステムのラベル範囲を取得し、新しい機密ラベルがそのファイルシステムのラベル範囲内であるか調べます。

#include <tsol/label.h>

 main()
 {
 	int					retval, error;
 	bclabel_t					fileCMWlabel;
 	bslabel_t					fsenslabel;
 	brange_t 					range;
 	char					*string = "TOP SECRET";

/* 機密ラベルの新しい値を作成する */
 	retval = stobsl(string, &fsenslabel, NEW_LABEL, &error);
/* ファイルシステムのラベル範囲を得る */
 	retval = getcmwfsrange("/export/home/zelda/afile", range);

/* 機密ラベルがラベル範囲内かどうか調べる */
 	retval = blinrange(&fsenslabel, range);
 	if(retval > 0)
 			{/* ファイル CMW ラベルの昇格を実行する */}
 }

データをデバイスに出力する前に範囲を確認する

Solaris 7 インタフェースを使用してデバイスを割り当てて入力をデバイスに送る場合には、必ずデバイス特殊ファイルのラベル範囲を調べてください。デバイスに送られる入力は、デバイス特殊ファイルのラベル範囲内でなければなりません。