Trusted Solaris 開発ガイド

システムセキュリティ構成の照会

システム変数は、システムがどのように構成されているかを示します。システム変数はシステムの起動時に初期化され、system(4) にエントリがない場合にはデフォルト値が使用されます。アプリケーションは、secconf(2) システムコールを使用してシステム変数を照会できます。次に、/etc/system 内で定義される変数を、デフォルト値とともに示します。

_TSOL_ENABLE_IL - アプリケーションに情報ラベルの設定または表示を許容します。デフォルトはオンです。

_TSOL_ENABLE_IL_FLOATING - 情報ラベルの浮上を実行します。デフォルトはオン (ラベルを浮上する) です。オフの場合には情報ラベルは浮上しませんが、プログラム中でコードを記述して浮上するように設定することもできます。この変数を有効にするには、_TSOL_ENABLE_IL をオンにする必要があります。

_TSOL_FLOAT_SYSV_MSG_IL - System V IPC のメッセージ待ち行列に対する情報ラベルの浮上を有効にします。デフォルトはオフです。待ち行列内の各メッセージの情報ラベルには、待ち行列にメッセージを入力するプロセスの情報ラベル、または msgsndl(2) で設定される情報ラベルが入ります。読み取りプロセスの情報ラベルは、読み取られるメッセージの情報ラベルに応じて浮上します。詳細は、第 12 章「System V のプロセス間通信」を参照してください。この変数を有効にするには、_TSOL_ENABLE_IL_TSOL_ENABLE_IL_FLOATING をオンにする必要があります。

_TSOL_FLOAT_SYSV_SEM_IL - System V IPC のセマフォセットに対する情報ラベルの浮上を有効にします。デフォルトはオフです。読み取りプロセスの情報ラベルは、セマフォセットの情報ラベルに応じて浮上します。セマフォセットの情報ラベルは、書き込みプロセスの情報ラベルに応じて浮上します。詳細は、第 12 章「System V のプロセス間通信」を参照してください。この変数を有効にするには、_TSOL_ENABLE_IL_TSOL_ENABLE_FLOATING をオンにする必要があります。

_TSOL_FLOAT_SYSV_SHM_IL - System V IPC の共有メモリー領域に対する情報ラベルの浮上を有効にします。デフォルトはオフです。共有メモリー領域の情報ラベルは、領域に連結した書き込みアクセスを持つすべてのプロセスの情報ラベルに応じて常に浮上します。読み取りアクセスに連結したプロセスの情報ラベルは、共有メモリー領域の情報ラベルに応じて浮上します。詳細は、第 12 章「System V のプロセス間通信」を参照してください。この変数を有効にするには、_TSOL_ENABLE_IL_TSOL_ENABLE_IL_FLOATING をオンにする必要があります。

_TSOL_RESET_IL_ON_EXEC - exec(1) への呼び出しの前に、情報ラベルを ADMIN_LOW にリセットします。デフォルトはオンです。この変数を有効にするには、_TSOL_ENABLE_IL をオンにする必要があります。

_TSOL_HIDE_UPGRADED_NAMES - ディレクトリに、特権プロセスによって昇格された機密ラベルを持つファイルまたはサブディレクトリが含まれる場合、この変数は、昇格されたファイルまたはサブディレクトリが getdents(2) のようなシステムコール要求によって表示または取得できるかどうかを決定します。デフォルトはオフです。オフの場合、ディレクトリを表示すると、昇格されたファイルとサブディレクトリの名前が表示されます。オンの場合、昇格されたファイルまたはサブディレクトリの名前は表示されません。

_TSOL_PRIVS_DEBUG - 特権デバッグを有効にします。デフォルトはオフです。特権デバッグを有効にする方法と使用方法の詳細は、『Trusted Solaris 管理の手順』またはこのマニュアルの 「特権デバッグ」を参照してください。

_TSOL_STR_LINKB - streams ポリシースイッチを設定します。デフォルトはオンです。オンの場合、異なるセキュリティ属性を持つ別の streams メッセージとリンクするときに、linkb(9F) システムコールは streams メッセージを出力します。しかし、情報ラベルだけが異なる場合は、リンク先の streams メッセージの情報ラベルだけが出力されます。

このコードは、システム変数を照会し、それらの現在の値を表示します。

#include <tsol/secconf.h>

 main()
 {

 long			retval;

 	retval = secconf(_TSOL_ENABLE_IL);
 	printf("Enable IL = %d¥n", retval);

 	retval = secconf(_TSOL_ENABLE_IL_FLOATING);
 	printf("IL Floating = %d¥n", retval);

 	retval = secconf(_TSOL_FLOAT_SYSV_SEM_IL);
 	printf("Semaphore set IL Floating = %d¥n", retval);

 	retval = secconf(_TSOL_FLOAT_SYSV_MSG_IL);
 	printf("Message queue IL Floating = %d¥n", retval);

 	retval = secconf(_TSOL_FLOAT_SYSV_SHM_IL);
 	printf("Shared memory IL Floating = %d¥n", retval);

 	retval = secconf(_TSOL_HIDE_UPGRADED_NAMES);
 	printf("Hide Names = %d¥n", retval);

 	retval = secconf(_TSOL_PRIVS_DEBUG);
 	printf("Priv Debug = %d¥n", retval);

 	retval = secconf(_TSOL_RESET_IL_ON_EXEC);
 	printf("Reset IL = %d¥n", retval);

 	retval = secconf(_TSOL_STR_LINKB);
 	printf("Streams policy switch = %d¥n", retval);
 }

printf 文によって、次のように出力されます。retval (戻り値) が 1 の場合、変数はオンです。0 の場合はオフです。-1 の場合は、エラーが発生しています。errno (エラー番号) は、入力された変数が無効な場合にだけ設定されます。

Enable IL = 1

IL Floating = 1

Semaphore set IL floating = 0

Message queue IL floating = 0

Shared memory IL floating = 0

Hide Names = 0

Priv Debug = 0

Reset IL = 1

Streams policy switch = 1