この章で説明しているプログラミングインタフェースを使用するには、次のヘッダーファイルが必要です。
#include <tsol/priv.h>
この章の例は、次のライブラリを使用してコンパイルしています。
-ltsol
1 つの特権は、priv_t 型の定義で表します。priv_t 型の変数は、定数名または数値 ID である特権 ID で初期化します。コードの読みやすさの点から、定数名を使用するとよいでしょう。
priv_t priv_id = PRIV_FILE_DAC_WRITE;
特権セットは、priv_set_t データ構造体で表します。priv_set_t 型の変数は、str_to_priv_set(3) ルーチンまたは PRIV_ASSERT マクロを使用して初期化します。これは、特権 ID (PRIV_ASSERT) を使用して一度に 1 つの特権を表明するか、それともインタフェース str_to_priv_set を使用して 1 つ以上の特権の文字列を特権セットに変換するかによります。
ファイル特権セットの種類は、priv_ftype_t 型の定義で表します。値は、PRIV_ALLOWED と PRIV_FORCED です。
プロセス特権セットの種類は、priv_ptype_t 型の定義で表します。値は、PRIV_EFFECTIVE、PRIV_INHERITABLE、PRIV_PERMITTED、PRIV_SAVED です。
ファイルまたはプロセスの特権セットで実行する操作の種類は、priv_op_t 型の定義で表します。特権セットの種類によって、有効な操作は異なります。「特権セット」を参照してください。
値を次に示します。
PRIV_ON - priv_set_t 構造体で表明された特権を、指定されたファイルまたはプロセスの特権セットでオンにします。
PRIV_OFF - priv_set_t 構造体で表明された特権を、指定されたファイルまたはプロセスの特権セットでオフにします。
PRIV_SET - 指定されたファイルまたはプロセスの特権セット内の特権を、priv_set_t 構造体で表明された特権に設定します。構造体が空に初期化されている場合は、PRIV_SET はその特権セットを none に設定してクリアします。