JavaScript is required to for searching.
ナビゲーションリンクをスキップ
印刷ビューの終了
Trusted Extensions 開発者ガイド     Oracle Solaris 10 1/13 Information Library (日本語)
search filter icon
search icon

ドキュメントの情報

はじめに

1.  Trusted Extensions API およびセキュリティーポリシー

2.  ラベルと認可上限

特権操作とラベル

ラベル API

Trusted Extensions システムの検出

プロセス機密ラベルへのアクセス

ラベル用のメモリーの割り当てと解放

ファイルのラベルの取得と設定

ラベル範囲の取得

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

リモートホストタイプの取得

ラベルと文字列の変換

ラベルの読み取り可能バージョン

ラベルエンコーディングファイル

ラベルの比較

機密ラベルの取得

3.  ラベルのコード例

4.  印刷とラベル API

5.  プロセス間通信

6.  Trusted X Window System

7.  ラベルビルダー API

8.  信頼できる Web ガードプロトタイプ

9.  Solaris Trusted Extensions ラベル API のための試験的な Java バインディング

A.  プログラマーのリファレンス

B.  Trusted Extensions API リファレンス

索引

機密ラベルの取得

機密ラベルは、ラベル付きゾーンからや他のプロセスから取得されます。ユーザーは、現在のゾーンの現在の機密ラベルでのみプロセスを開始できます。

プロセスでオブジェクトが作成される場合、そのオブジェクトは呼び出し元プロセスの機密ラベルを継承します。setlabel コマンドまたは setflabel() ルーチンを使用して、ファイルシステムオブジェクトの機密ラベルを設定できます。setlabel(1) および setflabel(3TSOL) のマニュアルページを参照してください。

次のスクリプト runwlabel は、指定するプログラムを指定するラベル付きゾーンで実行します。このスクリプトは、大域ゾーンから実行する必要があります。

例 2-1 runwlabel スクリプト

runwlabel スクリプトは最初に、指定されたプログラムを実行するラベル付きゾーンの機密ラベルを取得する必要があります。このスクリプトは、getzonepath コマンドを使用して、コマンド行に指定されたラベルからゾーンパスを取得します。getzonepath(1)のマニュアルページを参照してください。

次に、runwlabel スクリプトは zoneadm コマンドを使用して、getzonepath コマンドで取得されたゾーンパスに関連付けられているゾーン名を見つけます。zoneadm(1M) のマニュアルページを参照してください。

最後に、runwlabel スクリプトは zlogin コマンドを使用して、指定されたラベルに関連付けられているゾーンで、指定されたプログラムを実行します。zlogin(1) のマニュアルページを参照してください。

Confidential: Internal Use Only ラベルに関連付けられているゾーンで zonename コマンドを実行するには、大域ゾーンから runwlabel スクリプトを実行します。例:

machine1% runwlabel "Confidential : Internal Use Only" zonename

次に、runwlabel スクリプトのソースを示します。

#!/sbin/sh
#
# Usage:
# runwlabel "my-label" my-program
#
[ ! -x /usr/sbin/zoneadm ] && exit 0    # SUNWzoneu not installed

PATH=/usr/sbin:/usr/bin; export PATH

# Get the zone path associated with the "my-label" zone
# Remove the trailing "/root"
zonepath=`getzonepath "$1" | sed -e 's/\/root$//'`
progname="$2"

# Find the zone name that is associated with this zone path
for zone in `zoneadm list -pi | nawk -F: -v zonepath=${zonepath} '{
        if ($4 == zonepath) {
            print $2
        }
    }'`; do

        # Run the specified command in the matching zone
        zlogin ${zone} ${progname}
    done
exit

次のスクリプト runinzone は、ゾーンがブートされていない場合でも、指定されたゾーンでプログラムを実行します。このスクリプトは、大域ゾーンから実行する必要があります。

例 2-2 runinzone スクリプト

このスクリプトは最初に、指定されたゾーンをブートし、次に zlogin コマンドを使用して、指定されたゾーンで waitforzone スクリプトを実行します。

waitforzone スクリプトは、ローカルゾーンのオートマウンタが起動するまで待機してから、指定されたプログラムを指定されたユーザーとして実行します。

public ゾーンで /usr/bin/xclock コマンドを実行するには、大域ゾーンから次を実行します。

machine1% runinzone public terry /usr/bin/xclock

次に、runinzone スクリプトのソースを示します。

#!/sbin/ksh
zonename=$1
user=$2
program=$3

# Boot the specified zone
zoneadm -z ${zonename} boot

# Run the command in the specified zone
zlogin ${zonename} /bin/demo/waitforzone ${user} ${program} ${DISPLAY}

runinzone スクリプトは、次のスクリプト waitforzone を呼び出します。

#!/bin/ksh
user=$1
program=$2
display=$3

# Wait for the local zone automounter to come up
# by checking for the auto_home trigger being loaded

while [ ! -d /home/${user} ]; do
sleep 1
done

# Now, run the command you specified as the specified user

su - ${user} -c "${program} -display ${display}"