Oracle Solaris Trusted Extensions 管理の手順

Procedure作成済みまたは実行中のゾーンを表示する

この手順では、現在のゾーンと、現在のゾーンのほうが優位であるすべてのゾーンのラベルを表示するシェルスクリプトを作成します。

始める前に

大域ゾーンで、システム管理者役割になっている必要があります。

  1. トラステッドエディタを使用して、getzonelabels スクリプトを作成します。

    詳細は、「Trusted Extensions の管理ファイルを編集する」を参照してください。

    /usr/local/scripts/getzonelabels など、スクリプトへのパス名を入力します。

  2. 次の内容を入力して、ファイルを保存します。


    #!/bin/sh
    #
    echo "NAME\t\tSTATUS\t\tLABEL"
    echo "====\t\t======\t\t====="
    myzone=`zonename`
    for i in `/usr/sbin/zoneadm list -p` ; do
            zone=`echo $i | cut -d ":" -f2`
            status=`echo $i | cut -d ":" -f3`
            path=`echo $i | cut -d ":" -f4`
            if [ $zone != global ]; then
                    if [ $myzone = global ]; then
                            path=$path/root/tmp
                    else
                            path=$path/export/home
                    fi
            fi
            label=`/usr/bin/getlabel -s $path |cut -d ":" -f2-9`
            if [ `echo $zone|wc -m` -lt 8 ]; then
                    echo "$zone\t\t$status\t$label"
            else
                    echo "$zone\t$status\t$label"
            fi
    done
  3. 大域ゾーンでスクリプトをテストします。


    # getzonelabels
    NAME            STATUS          LABEL
    ====            ======          =====
    global          running         ADMIN_HIGH
    needtoknow      running         CONFIDENTIAL : NEED TO KNOW
    restricted      ready           CONFIDENTIAL : RESTRICTED
    internal        running         CONFIDENTIAL : INTERNAL
    public          running         PUBLIC

    大域ゾーンからこのスクリプトを実行すると、作成済みまたは実行中のすべてのゾーンのラベルが表示されます。デフォルトの label_encodings ファイルから作成されたゾーンの大域ゾーン出力は、次のとおりです。


例 10–1 作成済みまたは実行中のゾーンすべてのラベルの表示

次の例では、internal ゾーンでユーザーが getzonelabels スクリプトを実行します。


# getzonelabels
NAME            STATUS          LABEL
====            ======          =====
internal        running         CONFIDENTIAL : INTERNAL
public          running         PUBLIC