Solaris Trusted Extensions 開発ガイド

ゾーンのラベルへのアクセス

次の関数が、ゾーンのオブジェクトからラベル情報を取得します。次のルーチンの記述には、各ルーチンのプロトタイプ宣言が含まれます。

char *getpathbylabel(const char *path, char *resolved_path, size_t bufsize, const m_label_t *sl);

getpathbylabel() ルーチンは、すべてのシンボリックリンクを展開して /.//../ の参照を解決し、余分なスラッシュ (/) 文字を削除し、resolved_path という名前のバッファーにゾーンパス名を格納します。bufsize 変数は、このバッファーのバイト単位のサイズを指定します。その結果得られたパスには、シンボリックリンクの構成要素、または /.//../ はありません。この関数は大域ゾーンからのみ呼び出せます。

ゾーンパス名は機密ラベル sl から相対的なものです。存在しないゾーン名に機密ラベルを指定するには、指定する機密ラベルがプロセス機密ラベルより優位であるか優位でないかに応じて、プロセスが priv_file_upgrade_sl または priv_file_downgrade_sl 特権を表明する必要があります。

getpathbylabel(3TSOL) のマニュアルページを参照してください。

m_label_t *getzoneidbylabel(const m_label_t *label);

getzoneidbylabel() ルーチンは、ラベルが label であるゾーンのゾーン ID を返します。このルーチンは、指定したゾーンの状態が少なくとも ZONE_IS_READY でなければなりません。呼び出し元プロセスのゾーンは指定したゾーンのラベルより優位であるか、呼び出し元プロセスが大域ゾーンにある必要があります。

getzoneidbylabel(3TSOL) のマニュアルページを参照してください。

m_label_t *getzonelabelbyid(zoneid_t zoneid);

getzonelabelbyid() ルーチンは zoneid の MAC ラベルを返します。このルーチンは、指定したゾーンの状態が少なくとも ZONE_IS_READY でなければなりません。呼び出し元プロセスのゾーンは指定したゾーンのラベルより優位であるか、呼び出し元プロセスが大域ゾーンにある必要があります。

getzonelabelbyid(3TSOL) のマニュアルページを参照してください。

m_label_t *getzonelabelbyname(const char *zonename);

getzonelabelbyname() ルーチンは、名前が zonename であるゾーンの MAC ラベルを返します。このルーチンは、指定したゾーンの状態が少なくとも ZONE_IS_READY でなければなりません。呼び出し元プロセスのゾーンは指定したゾーンのラベルより優位であるか、呼び出し元プロセスが大域ゾーンにある必要があります。

getzonelabelbyname(3TSOL) のマニュアルページを参照してください。

m_label_t *getzonerootbyid(zoneid_t zoneid);

getzonerootbyid() ルーチンは zoneid のルートパス名を返します。このルーチンは、指定したゾーンの状態が少なくとも ZONE_IS_READY でなければなりません。呼び出し元プロセスのゾーンは指定したゾーンのラベルより優位であるか、呼び出し元プロセスが大域ゾーンにある必要があります。返されるパス名は、呼び出し元ゾーンのルートパスから相対的なものです。

getzonerootbyid(3TSOL) のマニュアルページを参照してください。

m_label_t *getzonerootbylabel(const m_label_t *label);

getzonerootbylabel() ルーチンは、ラベルが label であるゾーンのルートパス名を返します。このルーチンは、指定したゾーンの状態が少なくとも ZONE_IS_READY でなければなりません。呼び出し元プロセスのゾーンは指定したゾーンのラベルより優位であるか、呼び出し元プロセスが大域ゾーンにある必要があります。返されるパス名は、呼び出し元ゾーンのルートパスから相対的なものです。

getzonerootbylabel(3TSOL) のマニュアルページを参照してください。

m_label_t *getzonerootbyname(const char *zonename);

getzonerootbyname() ルーチンは zonename のルートパス名を返します。このルーチンは、指定したゾーンの状態が少なくとも ZONE_IS_READY でなければなりません。呼び出し元プロセスのゾーンは指定したゾーンのラベルより優位であるか、呼び出し元プロセスが大域ゾーンにある必要があります。返されるパス名は、呼び出し元ゾーンのルートパスから相対的なものです。

getzonerootbyname(3TSOL) のマニュアルページを参照してください。