Secret プロセスは、Confidential の /export/home/heartyann シングルレベルディレクトリ内での書き込みのために somefile を開き、書き込み操作を実行し、このファイルを閉じます。
filedes = open("/export/home/.MLD.heartyann/.SLD.1/somefile", O_WRONLY); size = write(filedes, buffer, 14); retval = close(filedes);
open(2) システムコールに対する必須アクセスチェック - プロセスは /export/home/heartyann に対する必須検索アクセスと、somefile に対する必須書き込みアクセスを必要とします。Secret で動作中のプロセスは必須検索のアクセスチェックの条件を満たしますが、必須書き込みのアクセスチェックの条件は満たしていません。必須書き込みアクセスが有効になるためには、somefile の機密ラベルはプロセスの機密ラベルより優位でなければなりませんが、実際には優位ではありません。つまり、Confidential は Secret より優位ではありません。プロセスは、file_mac_write 特権を表明してこの制限を無効にすることも、エラーを表明することもできます。
open(2) システムコールに対する任意アクセスチェック - プロセスは /export/home/heartyann に対する任意検索アクセスと、somefile に対する任意書き込みアクセスを必要とします。このディレクトリパスと somefile 上のその他ユーザーに対するアクセス権ビットは、任意検索アクセスを与えますが、任意書き込みのアクセスチェックの条件をパスしません。プロセスは、file_dac_write 特権を表明してこの制限を無効にすることも、エラーを表明することもできます。
write(2) システムコールに対する必須アクセスチェック - 必須アクセスチェックは、somefile が開かれているときに行われます。ほかのアクセスチェックは行われません。
write(2) システムコールに対する任意アクセスチェック - 任意アクセスチェックは、somefile が開かれているときに行われます。ほかのアクセスチェックは行われません。