Trusted Solaris 開発ガイド

ファイルの作成

次の例では、プロセスは認可上限 Top Secret を使用して Confidential で動作しています。 Confidential プロセスは、Top Secret の SLD にアクセスするためには、有効セットに file_mac_search 特権を必要とします。Top Secret SLD 内にまだ afile が存在しない場合、プロセスは file_mac_write 特権を必要とします。これは、このプロセスの機密ラベルが SLD の機密ラベルと同等でないためです。afile がすでに存在する場合は、file_mac_write 特権は必要ありません。

#include <tsol/label.h>
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <fcntl.h>

 main()
 {	
 	int		filedes;

/* プロセスが実行されている SLD でファイルを開く */
 	filedes = creat("/export/home/zelda/afile", 660);

 	printf("File descriptor for regular path = %d¥n", filedes);

/* Top Secret の SLD でファイルを作成する */
/* 有効セット内で file_mac_search をオン (有効) にする */
 	filedes = creat("/export/home/.MLD.zelda/.SLD.3/afile", 660);
/* file_mac_search をオフ (無効) にする */

 	printf("File descriptor for adorned path = %d¥n", filedes);
 }

printf 文によって、次のように出力されます。

File descriptor for regular path = 3

File descriptor for adorned path = 4