Solaris Trusted Extensions 開発ガイド

ファイルラベルの取得

ファイルの機密ラベルを取得し、そのラベルに対して操作を実行できます。

このコーディング例では、getlabel() ルーチンを使用してファイルのラベルを取得します。fgetlabel() ルーチンを同様に使用できますが、ファイル記述子に関して機能します。

#include <tsol/label.h>

main()
{
    m_label_t* docLabel;
    const char* path = "/zone/restricted/documents/designdoc.odt";
    int retval;
    char* label_string;

    /* ラベルを割り当てて、パスによって指定されるファイルラベルを取得する */
    docLabel = m_label_alloc(MAC_LABEL);
    retval = getlabel(path, docLabel);

    /* ファイルラベルを文字列に変換し、出力する */
    retval = label_to_str(docLabel, &label_string, M_LABEL, LONG_NAMES);
    printf("The file's label = %s\n", label_string);
    
    /* 割り当てられたメモリーを解放する */
    m_label_free(docLabel);
    free(label_string);
    }

このプログラムを実行した場合の出力は、次のようになります。


The file's label = CONFIDENTIAL : INTERNAL USE ONLY