Sun WorkShop TeamWare ユーザーズガイド ホーム目次前ページへ次ページへ索引


第 4 章

ワークスペースへのアクセス制御

Sun WorkShop TeamWare では、アクセス権の設定とプットバックの妥当性検査によって、どのユーザーがワークスペースにファイルをプットバックできるのかを制御できます。この章では、以下について説明します。

アクセス権の設定

Sun WorkShop TeamWare では、全体、グループ、個人ユーザーのレベルでアクセス権を許可または禁止できます。全体レベルでのアクセス権の制御については、「全体レベルでのアクセス制御」、グループまたは個人ユーザーレベルでのアクセス権の制御については、「グループまたはユーザーレベルでのアクセス制御」を参照してください。

個人ユーザーまたはグループレベルで、次に挙げる Sun WorkShop TeamWare のトランザクションの実行を許可または禁止できます。

全体レベルでのアクセス制御

全体にわたるアクセス制御を設定する手順は次のとおりです。

1. ワークスペース管理ツールを起動します。

2. 「ファイル」 「ワークスペースの読み込み」を選択します。

3. 「ワークスペース読み込み」ダイアログボックスでワークスペースを選択し、「ワークスペースの読み込み」をクリックします。

4. 読み込んだワークスペースをクリックして選択状態にします。

5. 「ワークスペース」 「属性」を選択します。

6. 「ワークスペース属性」ダイアログボックスの「アクセス制御」タブを選択します。


図 4-1   「ワークスペース属性」ダイアログボックスの「アクセス制御」タブ

7. 「操作」リストからアクセス権を設定するトランザクションを選択し、「編集」をクリックします。

「アクセス制御属性」ダイアログボックスが表示されます。

8. すべてのユーザーに適用するアクセス権を選択します。

デフォルトでは、あらゆるユーザーにトランザクションの実行アクセス権が付与されます。

9. 「了解」をクリックします。

グループまたはユーザーレベルでのアクセス制御

1. ワークスペース管理ツールを起動します。

2. 「ファイル」 「ワークスペースの読み込み」を選択します。

3. 「ワークスペース読み込み」ダイアログボックスでワークスペースを選択し、「ワークスペースの読み込み」をクリックします。

4. 読み込んだワークスペースをクリックして選択状態にします。

5. 「ワークスペース」 「属性」を選択します。

6. 「ワークスペース属性」ダイアログボックスの「アクセス制御」タブを選択します。

7. 「操作」リストからアクセス権を設定するトランザクションを選択し、「編集」をクリックします。

「アクセス制御属性」ダイアログボックスが表示されます。

8. 「指定」ボタンをクリックします。

9. 「名前」フィールドにユーザーのログイン名 (またはグループ名) を入力します。

10. 「ユーザー」または「ネットグループ」ボタンをクリックします。入力したログイン名が個人ユーザーのログイン名の場合は「ユーザー」、グループ名の場合は「ネットグループ」をクリックします。

11. 「許可する」または「許可しない」ボタンをクリックします。

12. 「前に挿入」または「後ろに挿入」ボタンをクリックして、リストにユーザーを追加します。リストがない場合は、新たにリストを作成します。

13. 「了解」をクリックします。

「アクセス制御」タブのアクセス権リストにユーザー名 (またはネットグループ名) が表示されます。


注 - リスト内のユーザーの登録位置によって、そのユーザーのアクセス制御が影響を受けることがあります。同じユーザーに対して「許可する」と「許可しない」の両方が指定されている場合は、最初の登録だけが参照されます。このような状況は、個人ユーザーにはアクセスが許可されているにも関わらず、そのユーザーが所属するグループに対してはアクセスが許可されていない場合などに発生する可能性があります。この場合、ユーザーが先に登録されていれば、ユーザーにはアクセスが許可されます。グループが先に登録されている場合は、ユーザーへのアクセスは許可されません。

プットバックの妥当性検査によるワークスペースの保護

特定のワークスペースを厳重に管理するには、プットバックの妥当性検査機能を使用します。プットバックの妥当性検査機能を有効にすることによって、特定のユーザーだけがワークスペースにプットバックできるように設定できます。 ユーザーは、プットバックを行う前に、統合要求 ID (Integration Request Identifier) と呼ばれる「パスワード」の入力が求められます。ワークスペース管理ツール自体は、入力された統合要求 ID の妥当性を検査せずに、別のプログラムに渡します。入力された ID の妥当性を検査するには、自分でそのためのプログラムを作成する必要があります。詳細は、「プットバックの妥当性検査プログラムの起動」を参照してください。プットバックの妥当性検査が有効になっていても、妥当性検査をするためのプログラムがない場合は、ワークスペース管理ツールは常にプットバックを許可します。入力された統合要求 ID は、ワークスペース履歴ファイルの見出し語 RTI (Request To Integrate) の行に記録されます。

表 4-1 に、プットバックの妥当性検査の 3 つのモードをまとめます。

表 4-1   プットバックの妥当性検査のモード
モード ユーザーの操作 ワークスペース管理ツール
妥当性検査をしない (デフォルト) なし ワークスペースに対するすべてのプットバックを許可します。
妥当性検査をする プットバックの妥当性検査を有効にします。 プットバックを許可する前に「パスワード」(統合要求 ID) の入力を要求します。パスワードの妥当性は検査されず、単に記録されるだけです。
妥当性検査をする パスワードを検査 プットバックの妥当性検査プログラムを作成し、プットバックの妥当性検査を有効にして作成したプログラムを実行する。 プットバックを許可する前に「パスワード」(統合要求 ID) の入力を要求し、入力されたパスワードを妥当性検査プログラムに渡します。妥当性検査プログラムは、プットバックを許可する前にアクセス権を付与する必要があります。


SCCS ではまた、各ファイルに対するチェックインの妥当性検査を要求することもできます。詳細は、「SCCS ファイルの属性の設定」を参照してください。

プットバックの妥当性検査を有効にする

プットバックの妥当性検査を有効にする手順は次のとおりです。

1. 「ワークスペース管理」ウィンドウから「ファイル」 「ワークスペースの読み込み」を選択し、ワークスペースを読み込みます。

2. 読み込んだワークスペースをクリックして選択状態にします。

3. 「ワークスペース」 「ワークスペース属性」を選択します。

4. 「ワークスペース属性」ダイアログボックスから「プットバックの妥当性検査」タブをクリックします (図 4-2 を参照)。


図 4-2   「ワークスペース属性」ダイアログボックスの「プットバックの妥当性検査」タブ

5. 「プットバックの妥当性検査:」の「する」をクリックして設定を有効にします。

6. 「了解」をクリックします。

プットバックの妥当性検査プログラムの起動

ワークスペースに対して妥当性検査プログラムを設定すると、そのワークスペースに対するプットバックトランザクションが試みられるたびに、その妥当性検査プログラムが起動されます。プログラムで問題が発生すると、プットバックはブロック (阻止) されます。

プットバックの妥当性検査プログラムは、Sun WorkShop TeamWare には付属していません。妥当性検査プログラムは、ユーザー自身が用意する必要があります。コード例 4-1 に妥当性検査プログラムの例を示します。

プットバックの妥当性検査プログラムを起動する手順は次のとおりです。

1. 「ワークスペース管理」ウィンドウから「ファイル」 「ワークスペースの読み込み」を選択し、ワークスペースを読み込みます。

2. 読み込んだワークスペースをクリックして選択状態にします。

3. 「ワークスペース」 「ワークスペース属性」を選択します。

4. 「ワークスペース属性」ダイアログボックスから「プットバックの妥当性検査」タブをクリックします。

5. 「プットバックの妥当性検査:」の「する」をクリックして設定を有効にします。

6. 「プットバックの許可:」の「妥当性検査プログラムによる許可」をクリックします。

7. 「妥当性検査プログラム」フィールドに使用する妥当性検査プログラムのパスを入力します。

8. 「了解」をクリックします。

妥当性検査プログラムのコード例

特定のワークスペースに対するプットバックを許可するかどうかを検査するためのプログラム例を紹介します。妥当性検査プログラムは、プットバックによって渡される引数を受け取り、プットバックを拒否するときにゼロ以外の終了ステータスを返す実行可能なファイル (シェルスクリプト、プログラムなど) であれば、どのようなプログラムでもかまいません。

プットバックを試みると、統合要求 ID の入力が求められ、続いて、次の引数を付加して妥当性検査プログラムが起動されます。

コード例 4-1 のプログラムは、すべての引数を検査し、問題がなかった場合は、終了ステータスとしてゼロを返してプットバックを許可します。

コード例 4-1   プットバックの妥当性検査プログラムの例 
## Start of sample validation program
#!/bin/sh
##
## Here is the list of users which can run
## putback to the workspace
##
valid_users="nikm azv builder vvg aar"
##
## Here is the list of Integration Request Ids which
## are accepted
##
P1Bugs="1111111 2222222 1234567 bobs_bug"
##
## Here are the directories which cannot change
##
DirsReady="doc subdir/doc"
##
## Save arguments
##
User=$1
        shift
Parent=$1
        shift
Child=$1
        shift
IRI=$1
        shift
Files=`cat $1`
##
## Validate user
##
isValid="false"
for u in $valid_users
do
   if [ "$User" = "$u" ] ; then
      isValid="true"
      break
   fi
if [ "$isValid" = "false" ] ; then
   # invalid user
   echo ""
   echo "*** Validation failed: User $User is not allowed \
        to putback to $Parent"
   echo ""
   exit 1
fi
##
## Validate Integration Request Id (IRI)
##
isValid="false"
for u in $P1Bugs
do
  if [ "$IRI" = "$u" ] ; then
     isValid="true"
     break
  fi
done
if [ "$isValid" = "false" ] ; then
   # invalid IRI
   echo ""
   echo "*** Validation failed: Integration request $IRI \
        is invalid"
   echo ""
   exit 1
fi
##
## Validate files
##
for u in $Files
do
   for uu in $DirsReady
   do
      x=`echo $u | grep $uu`
      if [ "$x" != "" ] ; then
         isValid="false"
         echo ""
               echo "*** Validation failed: File $u \
                    cannot be changed"
               echo ""
               exit 1
           fi
       done
done
##
## Exit 0 - putback is allowed
##
exit 0
## End of sample validation program

ワークスペースのロックの解除

整合性を保つために、ワークスペース管理ツールは、トランザクション (ブリングオーバー、取り消し、プットバック) が実行されている間は、その処理対象のワークスペースをロックします。

ロックされているワークスペースにファイルをブリングオーバーしようとすると、ロックしているユーザー名と実行しようとしているコマンド、ロックが取得された時刻が示されたエラーメッセージが返されます。

bringover: 読込みロックを取得できません。ワークスペース
"/home/my_home/projects/mpages" に以下のロックが存在しています:
	ユーザー jack は putback コマンドを実行中 (pid 20291)
	マシン holiday で 10 分
  (エラー 2021)

トランザクションが終了すると、これらのロックは自動的に解除されます。このため、通常はこうしたエラーメッセージが返されることはありませんが、トランザクションで問題が発生すると、ロックが解除されずに残ることがあるため、ワークスペースにアクセスできないことがあります。他に誰もそのワークスペースにアクセスしていないことが確実な場合は、手動でロック解除してください。


注 - ロックを解除する前に、そのワークスペースを変更してるユーザーがいないことを確認してください。変更中のワークスペースのロックを解除すると、ワークスペースの完全性が失われます。

ワークスペースのロックを解除する手順は次のとおりです。

1. ロックを解除するワークスペース内で、誰もファイルを変更していないことと、トランザクションが実行されていないことを確認します。

2. 「ワークスペース管理」ウィンドウから「ファイル」 「ワークスペースの読み込み」を選択して、ワークスペースを読み込みます。

3. 読み込んだワークスペースをクリックして選択状態にします。

4. 「ワークスペース」 「ロックの編集」を選択します。

5. 「ロック編集」ダイアログボックスで解除するロックをクリックして、選択状態にします。

6. 「削除」をクリックします。

7. 「了解」をクリックして「ロック編集」ダイアログボックスを閉じます。


サン・マイクロシステムズ株式会社
Copyright information. All rights reserved.
ホーム   |   目次   |   前ページへ   |   次ページへ   |   索引