次の例では、プロセスは認可上限 Top Secret を使用して Confidential で動作しています。この Confidential プロセスは、Top Secret の SLD にアクセスするためには、有効セットに file_mac_search 特権を必要とします。ファイルが書き込みのために開かれており、セキュリティポリシーによって上位書き込みが許容されるため、この処理がすべての任意アクセス検査の条件を満たすのであれば、ほかに必要な特権はありません。
#include <tsol/label.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
main()
{
int filedes;
/* プロセスが実行されている SLD でファイルを開く */
filedes = open("/export/home/zelda/afile", O_WRONLY);
printf("File descriptor for regular path = %d¥n", filedes);
/* Top Secret の SLD でファイルを開く */
/* 有効セット内で file_mac_search をオン (有効) にする */
filedes = open("/export/home/.MLD.zelda/.SLD.3/afile", O_WRONLY);
/* 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