[ 前のページ ] [ 次のページ ] [ 目次 ] [ 索引 ] [ DOC Home ]

6 ユーザ・アカウントの管理

本章では,システムのユーザにアクセス権を付与する方法について説明します。 具体的には,ユーザ・アカウントを追加,保守する方法を説明します。 また,システム管理者がシステムのユーザに付与可能な特権,および割り当て可能な資源について説明します。 また本章では,OpenVMSのメール・ ユーティリティ(MAIL)のシステム管理機能についても説明します。

本章の内容

本章では,次の作業について説明します。

作業 参照箇所
システム提供UAFアカウントの管理 第6.4節
ユーザ・アカウントの追加にあたっての準備 第6.5節
ユーザ・アカウントの追加 第6.6節
会話型アカウント用コマンド・ プロシージャの使用 第6.7.1項
ユーザ・ アカウントの変更 第6.7.2項
ユーザ・アカウントのリスト作成 第6.7.3 項
ユーザ環境の保守 第6.7.4項
ユーザ・アカウントの削除 第6.7.5項
アカウントの使用制限 第6.8節
制約付きアカウント用ログイン・ コマンド・プロシージャの使用法 第6.8.4項
特殊アカウントの設定 第6.9節
MAILの管理 第6.10 節
システム資源の管理 第6.11節

さらに,次の項目について説明します。

項目 参照箇所
利用者登録ファイル(UAF) 第6.1節
登録ファイルの保護 第6.2節
UAFのログイン検査 第6.3 節
システム提供UAFアカウント 第6.4.1 項
アカウントの機密保護 第6.5.3項
ネットワーク代理アカウント 第6.9.3項
ページおよびページレット 第6.11.1項

6.1 利用者登録ファイル(UAF)

システムの利用者登録ファイル(UAF) SYS$SYSTEM:SYSUAF.DATにはユーザ・ アカウント・レコードが含まれています。各レコードは, アカウントのユーザ名とログイン特性,ログイン制約事項,資源制御属性に関する情報フィールドから構成されます。 このうちアカウントのユーザ名はAUTHORIZE コマンドのパラメータとして使用し,その他のフィールドはAUTHORIZE コマンドの修飾子として使用します。

システムはUAF (利用者登録ファイル)に基づいてログイン要求の有効性をチェックし, ログインに成功したユーザのためにプロセスを設定します。 AUTHORIZEユーティリティを使用したUAFレコードの作成,検査,および変更は, システム管理者が行います。

UAFレコードには,次の資源制御属性を設定することができます。

次の節では,これらの資源制御属性について簡単に説明します。

6.1.1 優先順位

ユーザの優先順位とは,ユーザのアカウントに関連するプロセスに対するコンピュータ時間をシステムがスケジューリングするときに使用される 基本優先順位です。

VAXシステムの場合,優先順位は最も低い値で0,最も高い値で31です。0 から15はタイムシェアリング優先順位,16から31はリアルタイム優先順位になります。

Alphaシステムの場合,優先順位は最も低い値で0,最も高い値で63です。 0から15はタイムシェアリング優先順位,16から63はリアルタイム優先順位になります。

システムは,厳密に基本優先順位に従って,リアルタイム優先順位でプロセスをスケジューリングします。 すなわち,最初に実行されるのは,最も高い基本優先順位を持つ実行形式のリアルタイム・ プロセスです。タイムシェアリング優先順位を持つプロセスは, すべてのユーザが公平なサービスが受けられるよう, これとは少し異なる原理に従ってスケジューリングされます。

タイムシェアリング・アカウントに対する基本優先順位は,省略時の設定である,4 のままにしておいてください。

6.1.2 制限とクォータ

制限とは,再利用できるシステム資源に設定するものです。たとえば,あるプロセスが入出力要求のために使用できるメモリの総量などが制限です。 ほとんどの制限は,物理メモリの使用を制約するものです。また,適切なUAF フィールドを使って,アカウントでプロセスを制限することもできます。 一度設定した制限は,DCLコマンドを使用して,またはプログラムからシステム・ サービスを呼び出して,変更することができます。

プロセスは,そのサブプロセスに自分の資源を渡します。たとえば, SPAWNコマンド使うと,サブプロセスを作成することができます。資源をサブプロセスに渡す方法はいくつかありますが, 資源のタイプによって異なります。 資源のタイプを表 6-1に示します。

表 6-1 資源タイプによる制限

資源タイプ 制限の説明
プール型 親プロセスおよびそのサブプロセスは, 先入れ先出し法で,制限に達するまで資源を共用する。
非差し引き型 サブプロセスは,親プロセスと同じ資源上の制限を受ける。 親プロセスの制限に影響はない。
差し引き型 サブプロセスは, 親プロセスの資源の一部を受ける。その部分は,親プロセスの制限から差し引かれる。
システム単位型 親プロセスと,同じユーザ名または同じアカウントで作成されたすべてのサブプロセスは, 先入れ先出し法で,すべての制限を共用する。

通常,使用制限は省略時の値のままにしておきます。システム・アカウントとユーザ・ アカウントの省略時の使用制限量については, OpenVMSディストリビューション・キットのAUTHORIZEユーティリティに用意されているサンプル版のSYSTEM およびDEFAULT利用者登録ファイルのレコードを参照してください。 制限とクォータについては,第6.11節で詳しく説明します。

6.1.3 特権

特権は,ユーザがどの機能をシステムで実行できるかを決定するものです。 システム管理の機能を使用するためには,通常のユーザが持っていない特権が必要です。SYSTEM アカウントは省略時の設定ですべての特権を持つので,SYSTEM アカウントを使用するときは注意してください。 たとえばSYSTEMアカウントにログインすると,保護の設定に関係なく, 任意のファイルを変更したり,削除したりすることができます。

表 6-2にシステムの特権を分類し, 各特権についての簡単な説明を示します。特権についての詳細は, 『OpenVMS Guide to System Security』を参照してください。

表 6-2 システムの特権

分類 特権 可能な操作
なし なし 特権を必要としない操作
通常 NETMBX
TMPMBX
ネットワーク接続の確立
一時メールボックスの作成
グループ GROUP
GRPPRV
同じグループのプロセスの制御
システム保護フィールドによる グループ・アクセス
ディバウ ACNT
ALLSPOOL
BUGCHK
EXQUOTA
GRPNAM
PRMCEB
PRMGBL
PRMMBX
SHMEM
アカウントの使用停止
スプール・デバイスの割り当て
マシン・チェック・エラー・ログ・エントリの作成
ディスク・クォータの無視
名前テーブルへのグループ論理名の登録
パーマネント・コモン・イベント・フラグ・クラスタの作成または削除
パーマネント・グローバル・セクションの作成
パーマネント・メールボックスの作成
共用メモリにおける構造の作成または削除
システム ALTPRI
AUDIT
OPER
PSWAPM
SECURITY
SYSLCK
WORLD
割り当てより高い基本優先順位の設定
監査レコードの生成
オペレータ機能の実行
プロセス・スワップ・モードの変更
プロセスの制御
機密保護関連機能の実行
システム全体の資源のロック
オブジェクト DIAGNOSE
IMPORT
MOUNT
SYSGBL
VOLPRO
READALL
装置の診断
ラベルなしテープ・ボリュームのマウント
マウント・ボリュームQIOの実行
システム単位のグローバル・セクションの作成
ボリューム保護の書き換え
既存の制約を迂回するオブジェクトの読み込み
すべて BYPASS
CMEXEC
CMKRNL
DETACH
DOWNGRADE
LOG_IO
PFNMAP
PHY_IO
READALL
SETPRV
SHARE
SYSNAM
SYSPRV
UPGRADE
保護の無視
エグゼクティブ・モードへの移行
カーネル・モードへの移行
任意のUICの独立プロセスの作成
機密度の低いオブジェクトへの書き込みまたはオブジェクトの分類レベルの引下げ
論理入出力要求の発行
特定の物理ページへのマッピング
物理入出力要求の発行
すべてのシステム・オブジェクトに対する読み込み権の取得
特権の使用許可
他のユーザに割り当てられている装置へのアクセス
名前テーブルへのシステム論理名の追加
システム保護フィールドによるオブジェクトへのアクセス
統合性の高いオブジェクトへの書き込みまたはオブジェクトの統合レベルの引上げ

SET.EXEなどのいくつかのイメージは,システムUAFに対するアクセス権を必要とし, 通常SYSPRV特権でインストールされますから,システム管理者は必ずSYSUAF.DAT に対するアクセス権をシステムに付与してください。

6.2 登録ファイルの保護

ファイルの保護コードを表示するには,DCLコマンドのDIRECTORY/PROTECTION を使用してください。

登録ファイルは次の省略時の保護で作成されます。

ユーザ・アカウントの追加プロシージャについての詳細は,第6.6節を参照してください。UAF は,ユーザ・ アカウントの情報を格納する1次登録ファイルなので,アカウントを追加する前にその内容を理解しておくことが大切です。

6.3 UAFのログイン検査

この節ではまず,ユーザからログインが試みられたときにシステムがどのようにUAF のログイン・フィールドを調べるかについて説明します。

ターミナルを起動します。システムに直接接続されていれば,電源を入れてReturn を入力するだけです。接続されていなければ,システムにダイアルインして, 遠隔接続プロトコルを監視します。または,LAT経由で接続します。 そのとき,そのターミナルがユーザのプロセスに割り当てられていなければ, システムはユーザ名とパスワードの入力を求めます。ユーザは,UAF レコードに存在する,ユーザ名とパスワードの組み合わせを入力する必要があります。 正しくユーザ名とパスワードを入力しないと,それ以上アクセスができなくなります。 ユーザ名とパスワードが認められると, システムは表 6-3の操作を行います。

表 6-3 システムのログイン処理手順

手順 処理 結果
1. ログイン・フラグの検査 システムはDISUSERから検査を開始する。DISUSERフラグがセットされている場合, ログインは許可されない。

サポート・アカウントのような,めったに使われない強力なアカウントにこのフラグをセットすると, パスワードが推測される危険性がなくなる。

2. 主曜日および副曜日制約に関する検査 システムは,時刻別ログイン制約が有効かどうか決定する。 時刻別ログイン制約は,/ACCESS, /DIALUP, /INTERACTIVE, /LOCAL, /REMOTE修飾子によって定義される。現在の時刻が制限されていれば, ログインは失敗する。アクセスの時間や曜日によって,SYSTEM アカウントの非バッチ・アクセスを制限することを推奨する。 第6.8.1項および第6.8.2項を参照。
3. コマンド・インタプリタへの制御の引き渡し コマンド・ インタプリタの名前(たとえばDCL)はユーザのUAFレコードの値に決定される。
4. SYS$LOGINの定義の有無の検査 SYS$LOGINが定義されている場合は,論理名を変換し(DCL の場合はSYS$MANAGER:SYLOGIN.COMに変換),そのプロシージャを実行する。

SYS$LOGINが定義されていない場合は,システム・ログインは起動しない。

LGICMDフィールドにコマンド・プロシージャが指定されていて,そのプロシージャが存在する場合は, そのプロシージャを実行する。LGICMDフィールドに指定されていなくて, ログインを試みたユーザのLOGIN.COMというコマンド・ ファイル(CLIがDCLの場合)がSYS$LOGINディレクトリに存在する場合は, 自動的にそのファイルを実行する。

システムが,LGICMDフィールドに指定されているコマンド・プロシージャとユーザのLOGIN ファイルの両方を実行することはない。LGICMDフィールドにプロシージャが指定されていた場合, システムは省略時の設定でそのプロシージャを優先して実行する。 ただし,ユーザのLOGIN.COMは, LGICMDに指定したプロシージャの内部から呼び出して,実行することができる。

ログインが成功すると,コマンド・インタプリタはプロンプトを表示します。 プロンプトが表示されると,ユーザはコマンド・インタプリタが認識できるコマンドを入力できます。 ただし,ユーザの特権を超える操作や資源のクォータを超える操作はできません。 コマンド・インタプリタがDCL の場合,プロンプトは通常ドル記号です。DCLコマンド・インタプリタのコマンドについては, 『OpenVMS DCL ディクショナリ』を参照してください。

6.4 システム提供UAFアカウントの管理

一般的に,UAFはディストリビューション・キットに用意されているものを使用します。 ただし,DCLのRENAMEコマンドでUAFをリネームし, AUTHORIZEで新しいUAFを作成することができます。このファイルへのアクセスは,SYSTEM 特権を持ったアカウントからしか行えないようにしてください。 システム・ファイルを保護するときのガイドラインについては,『OpenVMSシステム管理ユーティリティ・ リファレンス・マニュアル』に詳しい説明があります。

UAFは共用ファイルとしてアクセスされ,UAFへの更新はレコード単位で行われます。 このため,AUTHORIZEセッションを行うたびに,一時UAFと新しいバージョンのUAF の両方を更新する必要はありません。更新内容は, AUTHORIZEが終了した後ではなく,AUTHORIZEコマンドが入力されるとすぐに有効になります。 したがって,後で変更すればよいと考えて,暫定的な値を入力しないでください。

AUTHORIZEユーティリティは,UAFレコードのフィールドに値を入力するためのコマンドや修飾子を提供します。UAF レコードのフィールドと,フィールドに属性を設定するためのコマンドおよび修飾子についての詳細は, 『OpenVMSシステム管理ユーティリティ・ リファレンス・マニュアル』を参照してください。

6.4.1 システム提供UAFアカウント

VAXシステムの場合,ソフトウェア・ディストリビューション・キットには,DEFAULT ,FIELD,SYSTEM,SYSTEST,およびSYSTEST_CLIGの5つのアカウントが含まれています。

Alphaシステムの場合,DEFAULTおよびSYSTEMアカウントが作成されます。SYS$MANAGER:CREATE_SPECIAL_ACCOUNTS.COM を使用して,第6.4.2項で説明している,SYSTEST , SYSTEST_CLIG,およびFIELDのアカウントを作成できます。

表 6-4はシステム提供UAFアカウントの説明です。

表 6-4 システム提供UAFアカウント

UAFレコード 説明
DEFAULT UAFに新規ユーザ・アカウントを作成するときのテンプレートとして使用することができる。 明示的に書き換えないかぎり, 新しいユーザ・アカウントにはDEFAULTアカウントの値がそのまま設定される。 このため,新しいアカウントの追加では,変更したいフィールドに新しい値を指定すればよいだけである。DEFAULT アカウントは,UAF から名前を変更したり削除したりできない。

次のAUTHORIZEコマンドはDEFAULTアカウントと同じ値を持つ新しいアカウントを作成する。 ただし,パスワード,UIC,および省略時ディレクトリのフィールドは異なる。

     UAF> ADD MARCONI/PASSWORD=QLP6YT9A/UIC=[033,004]/DIRECTORY=[MARCONI]

第6.6節では,AUTHORIZEを使用したユーザ・ アカウントの追加例を紹介する。新しい省略時のテンプレートの作成および使用方法については, 第6.7.4 項を参照。

FIELD コンパック・ サポート担当者が新しいシステムをテストするときに使用するレコード。

+ VAXシステムの場合,省略時のサポート・アカウントのユーザ名はFIELD 。

++ Alphaシステムの場合,ユーザがサポート・アカウント名を付ける(Mary_Smith ,John_Jonesなど)。

SYSTEM 完全な特権でログインする。システム管理者のアカウント用レコード。 このレコードは変更することができるが, リネームしたり,UAFから削除してはならない。


重要
SYSTEMアカウントに対するUAF レコードの省略時の装置とディレクトリ,特権フィールドを変更しないこと。OpenVMS オペレーティング・システムとオプションのソフトウェア製品の保守リリースは, それらフィールドのいくつかの値に基づいてインストールされる。

SYSTEMアカウントからアップグレードを実行するとき,SYSTEMアカウント上で実行した時間または日制約に注意すること。

SYSTEST スタンドアロン・システムでUETP ( ユーザ環境テスト・パッケージ)の実行に合わせた環境を実現する( 第17章参照)。
SYSTEST_CLIG OpenVMS Cluster環境内でのUETPの実行に合わせた環境を実現する。SYSTEST_CLIG アカウントにはパスワードはない( 第17章参照)。

+ VAXのみ

++ Alphaのみ

6.4.2 Alphaシステム上でのアカウントの作成(Alpha のみ)

Alphaシステムの場合,SYS$MANAGER:CREATE_SPECIAL_ACCOUNTS.COMコマンド・ プロシージャを使用して,SYSTEST,SYSTEST_CLIG,および複数サポート担当者のアカウントを作成できます。

6.4.2.1 サポート担当者アカウントの作成(Alpha のみ)

Alphaシステムの場合,CREATE_SPECIAL_ACCOUNTS.COMコマンド・プロシージャを使用して, サポート担当者のアカウントを作成できます。アカウント作成時には次のガイドラインに従ってください。

サポート担当者のアカウントの作成に使用するCREATE_SPECIAL_ ACCOUNTS.COMコマンド・プロシージャとの一般的な対話例を,次に示します。

     $ @CREATE_SPECIAL_ACCOUNTS.COM

         This procedure creates accounts.

         Passwords may be needed for the following accounts:

             SYSTEST, Field Service

         Passwords must be a minimum of 8 characters in length.  All passwords
         will be checked and verified.  Any passwords that can be guessed easily
         will not be accepted.

     * Do you want to create an account for SYSTEST (Y/N): N <Return>

     * Do you want to create an account for SYSTEST_CLIG (Y/N): N <Return>

     * Do you want to create an account for Field Service (Y/N): Y <Return>
     * Enter username for Field Service account: john_jones <Return>
     * Enter password for JOHN_JONES:
     * Re-enter for verification:

     $

システムはユーザが入力したパスワードやパスワードの確認を表示しません。

サポート担当者アカウントの使用停止(Alphaのみ)

AUTHORIZEユーティリティを使用して,使用されていない場合はサポート担当者のアカウントを使用停止にし, 必要になったら使用可能にすることができます。

アカウントを使用停止にするには,AUTHORIZEコマンドを次の形式で使用してください。

MODIFY ユーザ名/FLAGS=DISUSER

例を示します。

     $ RUN SYS$SYSTEM:AUTHORIZE
     UAF> MODIFY JOHN_JONES/FLAGS=DISUSER

ログイン・フラグDISUSERは,アカウントを使用停止にして誰もそのアカウントにログインできないようにします。

サポート担当者アカウントの再使用開始(Alpha のみ)

必要時に再びアカウントを使用可能にするには,AUTHORIZEを次の形式で入力します。

MODIFY ユーザ名/FLAGS=NODISUSER

例を示します。

     UAF> MODIFY JOHN_JONES/FLAGS=NODISUSER

6.4.2.2 SYSTESTおよびSYSTEST_CLIGアカウントの作成(Alpha のみ)

次に,SYSTESTおよびSYSTEST_CLIGアカウントの作成に使用するCREATE_ SPECIAL_ACCOUNTS.COMコマンド・プロシージャとの一般的な対話例を示します。

     $ @CREATE_SPECIAL_ACCOUNTS.COM

         This procedure creates accounts.

         Passwords may be needed for the following accounts:

             SYSTEST, Field Service

         Passwords must be a minimum of 8 characters in length.  All passwords
         will be checked and verified.  Any passwords that can be guessed easily
         will not be accepted.

     * Do you want to create an account for SYSTEST (Y/N): Y
     * Enter password for SYSTEST:
     * Re-enter for verification:

     * Do you want to create an account for SYSTEST_CLIG (Y/N): Y

         The SYSTEST_CLIG account will be disabled.  You must reenable
         it (/FLAGS=NODISUSER) before running UETP but do not assign a password.

     * Do you want to create an account for FIELD_SERVICE (Y/N): N

     $

SYSTEST_CLIGアカウントの使用開始(Alpha のみ)

CREATE_SPECIAL_ACCOUNTS.COMを使用してSYSTEST_CLIGアカウントを作成しても, このアカウントは使用停止になっています。使用可能にするには, 次のように/FLAGS=NODISUSERコマンドを使用してください。

     UAF> MODIFY SYSTEST_CLIG/FLAGS=NODISUSER

SYSTEST_CLIGアカウントの使用停止(Alpha のみ)

SYSTEST_CLIGアカウントを再び使用停止にするには,/FLAGS=DISUSERコマンドを使用してください。

     UAF> MODIFY SYSTEST_CLIG/FLAGS=DISUSER

6.4.3 システム提供アカウントの保守(VAXのみ)

VAXシステムをインストールしたら直ちにUAFで次の変更を行ってください。

  1. FIELDおよびSYSTESTアカウントを使用停止にする。めったに使用しないアカウントも使用停止にする。

    アカウントを使用停止にするには,AUTHORIZEコマンドを次の形式で使用する。

    MODIFY ユーザ名/FLAGS=DISUSER

    例:

         $ RUN SYS$SYSTEM:AUTHORIZE
         UAF> MODIFY WOLF/FLAGS=DISUSER
    

    ログイン・フラグDISUSERは,アカウントを使用停止にして誰もそのアカウントにログインできないようする。

    必要時にアカウントを使用可能にするには,AUTHORIZEを実行し,コマンドを次の形式で入力する。

    MODIFY ユーザ名/FLAGS=NODISUSER

  2. DEFAULTアカウントのフィールドを変更する(省略可能)。

    例:

         UAF> MODIFY DEFAULT/DEVICE=DISK$USER/WSQUO=750
    

    この例では,省略時の装置名はユーザ・アカウントで一般的に使用される名前に設定されている。 ワーキング・セット値もシステムの大半のユーザに合った値に設定されている。

6.4.4 SYSTEMアカウントの使用法

SYSTEMアカウントはバックアップの実行や保守アップデートのインストールなどのシステム機能だけで使用してください。SYSTEM アカウントは省略時の設定ですべての特権を持っていますから, このアカウント使用するときは十分注意してください。 たとえば,BYPASS特権を持っているので,その保護設定内容に関らずどのファイルでも削除できます。 ファイル名やアスタリスクを間違って入力してしまうと, 必要なファイルを破壊してしまう可能性があります。 日常のシステム管理作業にはSYSTEMアカウントよりも特権の少ないアカウントを使用してください。

日常のシステム管理作業にSYSTEMアカウントを使用しない場合でも, SYSTEMアカウントからメールを受信できるように設定できます。これには,SYSTEM アカウントにログインしてMAILを起動し,SET FORWARDコマンドを次の形式で使用して, メールを別のアカウントに転送します。

SET FORWARD ノード名::ユーザ名

例を示します。

     $ MAIL
     MAIL> SET FORWARD WINSTON::WOLF
     MAIL> EXIT


重要
SYSTARTUP_VMS.COMがバッチ・ ジョブを登録しているときは,ユーザ名SYSTEMでDISUSERを使用しないでください。 この場合は,バッチを除くすべてのアクセスを使用停止にしてください。

さらに,特権を持ったシステム・アカウントをすべて使用停止にしないように注意してください。 不注意ですべてのシステム・アカウントを使用停止にした場合は, 従来のブート作業中にシステム・パラメータUAFALTERNATE を設定すると復旧できます。緊急スタートアップ・プロシージャについては, 第4章を参照してください。


6.4.5 AUTHORIZEユーティリティによるUAFレコードの保守

UAFアカウントを作成したり,各アカウント・レコードのフィールド に値を設定または保守するときは,AUTHORIZEユーティリティを使用します。 次のことを設定できます。

作業方法

  1. 省略時の値をSYSUAF.DATファイルを含んでいるディレクトリに設定する。 通常はSYS$SYSTEM。

  2. AUTHORIZEユーティリティを実行して,特定のユーザ・レコードに対するアクセス権を取得する。

  3. SHOWコマンドを入力して,ユーザ・レコードを表示する(SHOW コマンドについては,例を参照)。

  4. ADDやMODIFYなどのAUTHORIZEコマンドを使用して,UAFレコードのフィールドを作成または変更する。

UAFレコードの資源制御フィールドと特権フィールドに設定可能な特権, 制限,およびクォータについては,第6.11節を参照してください。

     $ RUN SYS$SYSTEM:AUTHORIZE
     UAF> SHOW WELCH

次の例は,制約付きユーザ・アカウントに対する代表的なユーザ・レコードの例です。 白抜きの番号付きの項目については,例の後に説明があります。

Username: WELCH                            Owner:  ROB WELCH   【1】
Account:  INVOICE                          UIC:    [21,51] ([INV,WELCH])
CLI:      DCL                              Tables: DCLTABLES   【2】
Default:  USER3:[WELCH]
LGICMD:
Login Flags:  Diswelcome Disnewmail                            【3】
Primary days:    Mon Tue Wed Thu Fri
Secondary days:                     Sat Sun
Primary   000000000011111111112222  Secondary 000000000011111111112222
Day Hours 012345678901234567890123  Day Hours 012345678901234567890123
Network:  ------ No access -------            ----- Full access ------
Batch:    #########--------#######            ---------#########------
Local:    #########--------#######            ---------#########------
Dialup:   ----- Full access ------            ------ No access -------
Remote:   ----- Full access ------            ------ No access -------
Expiration:            (none)    Pwdminimum:  6   Login Fails:     0

Pwdlifetime:            30       Pwdchange:   15-APR-1998 13:58

Last Login:            (none) (interactive),            (none) (non-interactive)
Maxjobs:         0  Fillm:        20  Bytlm:         8192      【4】
Maxacctjobs:     0  Shrfillm:      0  Pbytlm:           0
Maxdetach:       0  BIOlm:        10  JTquota:       1024
Prclm:           2  DIOlm:        10  WSdef:          150
Prio:            4  ASTlm:        10  WSquo:          256
Queprio:         4  TQElm:        10  WSextent:       512
CPU:        (none)  Enqlm:       100  Pgflquo:      10240
Authorized Privileges:
  TMPMBX NETMBX 【5】
Default Privileges:
  TMPMBX NETMBX
Identifier 【6】                    Value              Attributes 【7】
  PROJECT_X                        %X8001001E         RESOURCE NODYNAMIC
  DOCU_PROC                        %X80010044         NORESOURCE NODYNAMIC
【1】
ユーザ識別フィールド:システムが会計情報とユーザ識別の目的に使用する情報を保持する。
【2】
省略時のフィールド :次の省略時の値を保持する。
【3】
ログイン特性フィールド:次のログイン制約を課す。
【4】
資源制御フィールド:システム資源使用を制御する。
【5】
特権フィールド:制約付きで機密保護を要するシステム機能の使用を許可する特権を指定する。
【6】
識別フィールド:ユーザが保持し, かつライト・データベース・ファイルに記録されている ACL 識別子の一覧。
【7】
属性フィールド:ライト・データベースに識別子を登録したり, ユーザに識別子を与えたりするときに指定する特性の一覧。

6.5 ユーザ・アカウントの追加にあたっての準備

この節では,ユーザ・アカウントを追加する前に行っておく必要のある事項について説明します。

6.5.1 アカウント・タイプの選択

ユーザ・アカウントをどのように設定するかは,個々のユーザの必要に応じて異なります。 表 6-5に,アカウントのタイプと特性をまとめます。

表 6-5 アカウント・タイプ

アカウント・タイプ 特性
会話型 システム・ソフトウェアに対するアクセス権を持つアカウント。 プログラム開発やテキスト編集などの一般的な作業は, このアカウントで行う。通常,そうしたアカウントは個人アカウントと見なされる。
制約付きアクセス システムに対するログインの制限を受け,場合によっては, ユーザ・ソフトウェアの一部しか使用することができないアカウント。 このアカウントでは,システム・ログイン・コマンド・プロシージャ(SYLOGIN.COM) やプロセス・ログイン・コマンド・プロシージャ(UAF の/LGICMD修飾子で指定)ばかりでなく,そこから呼び出されるコマンド・ プロシージャの実行も保証される。書き込みアクセス制限付きアカウント・ コマンド・プロシージャについては,『OpenVMS Guide to System Security』を参照。 アクセス制限付きアカウントには次の2 つのタイプがある。

制約付き MAILなどのネットワーク・オブジェクトやネットワーク代理アカウント, さらにはスマート・カードなどのユーザ認証システムの実現に使用する。
機能別 機能別に制限を課すアカウント。たとえば,システムに対するアクセスを, 在庫システムなどの特定の機能を実行する人にしか許可しないときに使用する。 在庫管理の担当者はシステムにアクセスすることができるが, 他のサブシステムや基本ソフトウェアへのアクセスは拒否される。 この種のアカウントのその他の用途としては,管理者不在時のバッチ処理の実行や, 管理者が個人的に保管しておきたい情報を伴うアプリケーション・ プログラムの実行などがある。

6.5.2 その他の作業

ユーザ・アカウントを追加するときは,次の手順で行います。

  1. ユーザ名とパスワードを決定する。

  2. UIC (利用者識別コード)を決定する。

  3. アカウントのファイルを置く場所(装置とディレクトリ)を決定する。

  4. ディスク・クォータが設定されている場合は,SYSMANユーティリティを使用して,UIC に対するディスク・クォータ・エントリを追加する。 この追加は,AUTHORIZEユーティリティでユーザのアカウントを作成した後でしか行えない。

  5. 次の形式のDCLコマンドを使って適当なボリュームに省略時のディレクトリを作成する。

    CREATE/DIRECTORY ディレクトリ指定/OWNER_UIC=利用者識別コード

  6. アカウントの機密保護条件,すなわち,ファイル保護,特権, およびアクセス制御レベルを決定する。

  7. ログイン・プロシージャおよびログアウト・プロシージャを作成する。

以降の項で,これらの作業について詳しく説明します。ユーザ・アカウントを追加するにあたっての準備作業を終えたら, 第6.6節で紹介する方法のいずれかを使ってユーザ・ アカウントを追加します。

6.5.2.1 ユーザ名とパスワードの決定

ユーザ名やパスワードを決定するときには,アカウントの性質を考えた命名規則に従ってください。 たとえば,アカウントを使用する人の名前を使用するなどです。

機能別アカウントの場合には,アカウントの機能が分かる名前を使用します。 したがって,Robert Jonesに対する会話型あるいは制約付きアカウントの場合,JONES という名前を付けます。また,在庫システムのような機能別アカウントの場合は,INV103289 という名前を付けます。このようなアカウント名を使用すると, ある程度は機能は分かりますが推測は簡単ではありません。 なお,ユーザ名はシステムで一意になるように命名してください。

会話型アカウントの場合,そのアカウントを使用するユーザにパスワードを設定させるのが最適です。 最初は簡単なパスワードを設定しておいて, そのユーザが初めてログインしたときに,必ず,パスワードを変更させるようにします。 アカウントを使用するユーザだけがパスワードを知っているようにします。 パスワードを設定するときには,必ず8文字以上の分かりにくいパスワードを指定し, さらに,頻繁に変更するようにユーザに指示してください。 あるいは,/FLAGS=GENPWDと/GENERATE_PASSWORD修飾子で作成されたパスワードを使用させるようにしてください。

AUTHORIZEのADDやMODIFYコマンドに/PWDMINIMUMと/PWDLIFETIME修飾子を指定すれば, 定期的にパスワードを変更するように設定できます。次に, こうした修飾子とその働きをまとめます。

修飾子 働き
/PWDMINIMUM パスワードの最低の長さを文字数で指定する。 省略時は6文字。
/PWDLIFETIME パスワードの有効期間をデルタ時間値を指定する。当日の1 週間前にシステムはユーザに警告メッセージを出す。当日,パスワードが変更されていない場合は, パスワードを失効させる。
/GENERATE_PASSWORD パスワード・ジェネレータを起動して, ユーザ・パスワードを生成する。
/FLAGS=GENPWD ユーザがパスワードを変更するときに, 自動パスワード・ジェネレータを使用する。機密保護が求められるデータに対しては, パスワード・ジェネレータの使用を検討すること。

機能別アカウントの場合,アカウントが使用するデータの機密性の程度によって, パスワード・タイプが決まります。たとえば,給与支払いのようなアプリケーションの場合, 分かりにくいパスワードを指定してください。 一方,提案のようなアカウントの場合,パスワードはそれほど重要ではありません。 この場合,パスワードを設定しなくてもいいでしょう。パスワードを設定していなければ, ユーザにパスワードの入力を求めるプロンプトは表示されません。

機能別アカウントのパスワードの変更を,ユーザに許可しないでください。 したがって,機能別アカウントを作成するときは,/FLAG=LOCKPWD を使用します。アカウントの利用者の担当が変わるなど,機密保持に不安がある場合は, パスワードを変更してください。ユーザ・パスワードを変更する場合は,UAF> プロンプトに対してMODIFY ユーザ名 /PASSWORD= 新規パスワードコマンドを使用します。

AUTHORIZEユーティリティについての詳細は,『OpenVMSシステム管理ユーティリティ・ リファレンス・マニュアル』を参照してください。

6.5.2.2 UIC (利用者識別コード)の割り当て

各アカウントには,UIC (User Identification Code :利用者識別コード) を割り当てます。UICには,英数字からなるものと数字だけからなるものの2 つの形式があります。

英数字からなるUICは,メンバ名とグループ名(オプション)から構成され, コンマで区切られ,大括弧で囲まれています。たとえば,[DOCO,PRICE] のようになります。これらの識別子を数字で表すこともできます。 この場合,メンバとグループの識別子を8進数で表現します。 たとえば,[11,200]のようになります。

アカウントの所有者が共同で作業していたり,頻繁に同じファイルにアクセスしたり, また同じ論理名を数多く共用したりする場合は,同じグループ番号をアカウントに割り当てます。 利用者識別コードについての詳細は『OpenVMS Guide to System Security』を参照してください。


注意
UICグループの1と300〜377まではコンパック用に確保されています。

6.5.2.3 ディスク・クォータ・エントリの追加

ディスク・クォータは,個々のユーザが使用可能な,特定のボリュームのディスク空間量を制限します。 ディスク・ボリュームに対してディスク・ クォータが設定されている場合は,SYSMANユーティリティのDISKQUOTAコマンドを使用して, 新しいUICにディスク・クォータ・エントリを追加します。

  1. SYSMANを起動する。

  2. 管理環境としてノードLARRYを定義する。

  3. UIC [014,JONES]に対するDISK$USERボリュームのディスク・クォータ・ エントリを追加する。エントリの内容はパーマネント・クォータが2000 ブロック,超過値が500ブロック。

  4. ユーティリティを終了する。

     $ RUN SYS$SYSTEM:SYSMAN
     SYSMAN> SET ENVIRONMENT/NODE=LARRY
     SYSMAN> DISKQUOTA ADD [014,JONES]/DEVICE=DISK$USER/PERMQUOTA=2000/OVERDRAFT=500
     SYSMAN> EXIT

クォータと超過値の合計が,ユーザに割り当てられる絶対最大ブロック数です。 この例では,2,500ブロックが割り当てられています。SYSMAN とディスク・クォータについては,『OpenVMSシステム管理ユーティリティ・ リファレンス・マニュアル』を参照してください。

6.5.2.4 会話型アカウントに対するユーザの省略時の装置の設定

会話型アカウントの場合,DCLのCREATE/DIRECTORYコマンドによって,それぞれに最上位( 省略時の設定)ディレクトリを作成します。このディレクトリには, ログイン・ファイル,ログイン・ファイルのテンプレート,またはログアウト・ ファイルなどを適宜格納します。会話型ユーザは,このディレクトリの中で, ファイルやサブディレクトリを作成または管理することができます。 また,このディレクトリの所有者を新しいアカウントのUIC に設定します。通常,省略時のディレクトリの名前にも,アカウントの名前を使用します。

アカウント名をJONES,UICを[014,1]にすると仮定します。このアカウントの省略時のディレクトリをボリュームDISK$USER に作成する場合は,次のDCL コマンドを使用します。

     $ CREATE/DIRECTORY DISK$USER:[JONES]/OWNER_UIC=[014,1]

どのボリュームにディレクトリを作成するかは,どの装置を会話型アカウントとして割り当てているか, および,どのくらいの領域が使用できるかによって決定します。

AUTHORIZEユーティリティを実行したときに,新しいアカウントに指定する省略時のファイル指定は,DCL のCREATE/DIRECTORYコマンドで指定した装置の名前と最上位ディレクトリを使用してください。

6.5.2.5 機能別アカウントに対するユーザの省略時の装置の設定

会話型アカウントの場合,最上位(省略時の設定)ディレクトリを作成するかどうかは, ユーザのシステムの性質によって決まります。ある特定のディレクトリを使用する場合は, そのディレクトリを省略時のディレクトリにしてください。 たとえば,在庫システムがDISK$DATA:[INV]STOCK1.DAT とDISK$DATA:[INV]STOCK2.DATというファイルを使用すると仮定します。 この場合,省略時の装置指定はDISK$DATAに,省略時のディレクトリ指定は[INV] にしてください。

6.5.3 アカウントの機密保護に関する注意事項

アカウントの機密保護をどのレベルにするかは,アカウントの目的と,そのアカウントが複数のユーザまたはグループによって共用されるかどうかで決まります。 会話型ユーザ・アカウントの場合,通常は省略時のUICに基づく保護で十分です。

ユーザのファイルの保護

最上位ディレクトリの場合,省略時の保護は,通常のユーザのアクセスを禁止します。 しかし,新しいユーザ・ディレクトリの省略時の保護を (w:e)にしておくと,他のユーザがこのディレクトリのファイルにアクセスするのを許可するために, ディレクトリの保護設定を変更する必要がありません。

DCLのSET SECURITYコマンドを使用すると,ファイルとサブディレクトリに対し個別に高い保護を設定できます。

アクセス制御リスト(ACL)の使用法

プロジェクト・アカウントなど,もっと保護レベルを高める必要がある場合は,ACL ( アクセス制御リスト)を使用します。ACLに基づく保護では, 異なるグループまたは複数のグループに所属するメンバがプロジェクト・ アカウントのようなアカウントに対するアクセス権を共用する場合など, より綿密なレベルの機密保護を実現することができます。ACLは機密保護関連のオブジェクトに対するユーザのアクセスを認めたり否定したりする方法を提供します。

ACLに基づく保護機能を利用したプロジェクト・アカウントを設定する方法については, 第6.9.2 項を参照してください。ACLの設定と編集方法については,『OpenVMS Guide to System Security』と『OpenVMS システム管理ユーティリティ・リファレンス・マニュアル』を参照してください。

AUTHORIZEを使用したライト・データベースの保守

ライト・データベース(RIGHTSLIST.DAT)は,システムのユーザとアクセス制御識別子とを対応させたファイルです。 ユーザからのログインがあると, システムはユーザが所有する識別子がライト・データベースに存在するか調べます。 システム管理者はAUTHORIZEユーティリティを使って,ライト・ データベースの識別子を必要に応じて追加または削除することができます。

ユーザ・グループの全員に同じ識別子を与えることによって,UICに基づく保護によって実現されるより, もっと複雑なグループ保護手段を実現することができます。

保護されたサブシステムの使用法

保護されたサブシステムにはデータへの条件付きアクセスがあります。保護されたサブシステムでは, 通常のアクセス制御によって保護されたアプリケーションは, サブシステムに属するオブジェクトに対する門番のような役割を果たします。 ユーザがそのアプリケーションを実行しているとき, ユーザのプロセス・ライト・リストには,サブシステムが所有するプロセスへのアクセス権をユーザに与える識別子が入っています。 ユーザがそのアプリケーションを終了すると, これらの識別子と(その結果として) そのオブジェクトに対するユーザのアクセス権がただちに消滅します。 詳細は『OpenVMS Guide to System Security』を参照してください。

6.6 ユーザ・アカウントの追加

以降の項ではユーザ・アカウントを追加する2つの方法を説明します。

6.6.1 AUTHORIZEユーティリティによるユーザ・アカウントの追加

ユーザ・アカウントの目的を分析し,必要になる属性と資源を決定したら,AUTHORIZE ユーティリティを使ってアカウントを作成します。手順は次のとおりです。

作業方法

  1. 次のコマンドを入力して,SYSPRV特権を取得する。
         $ SET PROCESS/PRIVILEGE=SYSPRV
    

  2. 次のコマンドを入力して,省略時の装置とディレクトリをSYS$SYSTEM に設定し,AUTHORIZEを起動する。
         $ SET DEFAULT SYS$SYSTEM
         $ RUN AUTHORIZE
         UAF>
    

  3. UAF>プロンプトが表示されたら,AUTHORIZEのADDコマンドを使用して, 次の例に示すようにUAFフィールドの属性を指定する。
         UAF> ADD JONES/PASSWORD=LPB57WM/UIC=[014,1] -
         _UAF> /DEVICE=DISK$USER/DIRECTORY=[JONES] -
         _UAF> /LGICMD=DISK$USER:[NEWPROD]GRPLOGIN -
         _UAF> /OWNER="ROBERT JONES"/ACCOUNT=DOC
    

修飾子の選択

この項では,AUTHORIZEによるアカウントの設定で使用可能な修飾子の一覧を示します。 表 6-6は,影響を及ぼすアカウント属性別に修飾子をまとめたものです。 各修飾子についての詳細は, 第6.11.2項を参照してください。 すべてのAUTHORIZE 修飾子の一覧については,『OpenVMSシステム管理ユーティリティ・リファレンス・ マニュアル( 上巻)』を参照してください。

表 6-6 AUTHORIZEで使用可能な修飾子

制限とクォータ[1]
/ASTLM /FILLM /PRCLM
/BIOLM /JTQUOTA /TQELM
/BYTLM /MAXACCTJOBS /WSDEFAULT
/CPUTIME /MAXDETACH /WSEXTENT
/DIOLM /MAXJOBS /WSQUOTA
/ENQLM /PGFLQUOTA
優先順位[2]
/PRIORITY

特権[3]
/DEFPRIVILEGES /PRIVILEGES
ログイン・ アクセス制御[3]
/ACCESS /FLAGS[4] /PRIMEDAYS
/DIALUP /INTERACTIVE /REMOTE
/EXPIRATION /LOCAL

[1]ほとんどの場合,省略時の値で問題ない。

[2]リアルタイム・プロセスを実行しないアカウントの場合,通常は省略時の値で問題ない。

[3]省略時の設定では,ユーザは任意の日時にログインすることができる。 特定の日の設定を無効にしたい場合は,DCLのSET DAYコマンドを使用する。 通常,主曜日として扱う日が休日になり,その日を副曜日としたい場合は, これらのフィールドを使ってログイン時刻と機能を制約する。 詳細は第6.8節を参照。

[4]すべてのFLAGSがこのカテゴリに適合するわけではない。

6.6.2 コマンド・プロシージャによるユーザ・ アカウントの追加

AUTHORIZEユーティリティを使わずに,コマンド・プロシージャを使ってユーザ・ アカウントを作成することもできます。この場合は, SYS$EXAMPLESディレクトリにあるADDUSER.COMを使用します。このコマンド・ プロシージャには,新しいアカウントを作成するときに使用するプロンプトと省略時の値が含まれています。

ADDUSER.COMは,システムの必要に応じて変更することができます。 ADDUSER.COMを実行したい場合は,SYSTEMアカウントにログインして,次のコマンドを入力してください。

     $ @SYS$EXAMPLES:ADDUSER.COM

ADDUSER.COMは,UAFレコード・フィールドの値の入力を求めるプロンプトを複数回表示します。 値を指定せずに単にReturnが押されたときにADDUSER が使用する省略時の値を次に示します。

UAFフィールド 省略時の値
ユーザ名 省略時の値なし(必須)
所有者 省略時の値なし( 必須)
パスワード 指定されたユーザ名
UICグループ番号 200
UICメンバ番号 省略時の値なし(必須)
アカウント名 任意
特権 TMPMBX,NETMBX
ログイン・ ディレクトリ 指定されたユーザ名
ログイン・デバイス $DISK1
ディスク・クォータ 1000
超過値 100

UICは,システム全体で一意である必要があります。たとえば,UICグループ200 のアカウントのすべてのメンバ番号を一意にする必要があります。 UICメンバ番号プロンプトの後に疑問符(?)を入力することによって,現在ユーザに割り当てられているUIC を,リスト表示することができます。アカウントは, プロシージャのすべての質問に対する応答を終えたときに作成されます。 プロシージャから最後に出されるプロンプトを次に示します。

     Is everything satisfactory with the account [YES]?

Returnキーを押すと,アカウントが指定どおりに作成され,SYSUAF.DATに残ります。NO と答えた場合は,アカウントが削除されます。


注意
アカウント特性の表示前,表示中, または表示直後(すなわち,"satisfactory?"プロンプトに対する応答前) にCtrl/Yを押しても,アカウント設定のすべてまたは一部が追加されます。

追加したアカウントにユーザがログインしたら,すぐにパスワードを変更するように指示してください。

6.7 ユーザ・アカウントの保守

システム管理者は,アカウントの変更や削除などのユーザ・アカウントの保守作業を行う必要があります。 以降の項では保守作業の実行方法について説明します。

作業 参照箇所
会話型アカウント用コマンド・ プロシージャの使用法 第6.7.1項
ユーザ・ アカウントの変更 第6.7.2項
ユーザ・アカウントのリスト作成 第6.7.3 項
ユーザ環境の保守 第6.7.4項
ユーザ・アカウントの削除 第6.7.5項
BACKUPによるユーザ・ファイルの削除 第6.7.6項
ユーザ・アカウントの使用停止 第6.7.7項

6.7.1 会話型アカウント用コマンド・プロシージャの使用法

アカウントのタイプに関係なく,ログイン・コマンド・プロシージャ には,一般的にユーザ・セッションの開始時に実行されるコマンドが入っています。 ログイン・コマンド・プロシージャのコマンドは,次の処理を行います。

ログイン・コマンド・プロシージャは,キー入力を減らし,操作を標準化します。

会話型アカウント用にログイン・コマンド・プロシージャを作成する場合, 次の中から選択します。

ログイン・
コマンド・
プロシージャ
説明
システム システム管理者は通常,システム・ディレクトリに標準のログイン・ コマンド・プロシージャを作成して保守する。 このとき,このコマンド・プロシージャのファイル名は通常, SYS$MANAGER:SYLOGIN.COMという名前にする。そして,ユーザのログインがあったときに必ずそのプロシージャが実行されるよう, 論理名SYS$SYLOGIN にそのファイル名を割り当てる。
個人 どのアカウントについても,AUTHORIZEのADD, MODIFY,COPYコマンドの/LGICMD修飾子を指定して,別のログイン・コマンド・ プロシージャを指定することができる。このようなログイン・コマンド・ プロシージャには,有効な任意のファイル指定を割り当てることができる。 ユーザがログインすると,指定したプロシージャがSYS$SYLOGIN の後に実行される。
ユーザ指定コマンド・
ファイル
ログイン・コマンド・プロシージャが個人用にもシステム用にも用意されていない場合, システムはLOGIN.COMというユーザ・ ログイン・ディレクトリを探す。このディレクトリは,UAF (利用者登録ファイル) レコードの装置フィールドとディレクトリ・フィールドで定義されるものである。 このファイルが見つかれば,システムはこのファイルを実行する。 このコマンド・ファイルは,ユーザが作成および保守するもので, 次の規則に従う必要がある。

  • 装置名とディレクトリ名が,アカウントの省略時のファイル指定であること。

  • ファイル名とファイル・タイプがLOGIN.COMであること。

新しいユーザのために,ログイン・コマンド・プロシージャのテンプレートを, 新しく作成した最上位ディレクトリにコピーしてする。しかし, そのファイルに適切な所有権を与えるために,そのファイルの所有者UIC ( 利用者識別コード)を新しいユーザに変更する必要がある。このためには,DCL のSET FILE/OWNERコマンドを使用する。

例 6-1例 6-2 は,典型的なシステム全体でのログイン・コマンド・プロシージャとユーザ指定ログイン・ コマンド・プロシージャの例です。

例 6-1 システム単位でのSYS$MANAGER:SYLOGIN.COM ログイン・コマンド・プロシージャ例

$ V = F$VERIFY(0)
$START:
$ !
$ SET NOCONTROL=Y         ! Do not allow Ctrl/Y to exit procedure
$ SET NOON
$ !
$ !     Allow network jobs to start faster
$ !
$ IF F$MODE() .EQS. "NETWORK" THEN GOTO EXIT
$ !
$ !     Enable Ctrl/T handling by DCL
$ !
$ SET CONTROL=T
$ !
$ !     Define Foreign Commands For Installed Utilities
$ !
$ USERS             ==    "SHOW USERS"
$ DISPLAY           ==    "MONITOR PROCESSES/TOPCPU"
$ INFO              ==    "SHOW PROCESS/CONTINUOUS"
$ SUSPEND           ==    "SET PROCESS/SUSPEND"
$ RESUME            ==    "SET PROCESS/RESUME"
$ SETNAME           ==    "SET PROCESS/NAME"
$ !
$ !     Define a symbol indicating whether the terminal
$ !     is on a dialup port
$ !
$ TT == F$GETDVI("TT","DEVNAM")-"_"
$ DIALUP == ((TT .GES. "TTG0:" .AND. TT .LES. "TTG4:") -
        .OR. (TT .GES. "TTH1:" .AND. TT .LES. "TTH4:") -
        .OR. (TT .EQS. "TTI5:"))
$ IF DIALUP THEN SET TERMINAL/INQUIRE
$ !
$EXIT:
$ IF V THEN SET VERIFY
   .
   .
   .
$ SET CONTROL=Y
$ EXIT

例 6-1のように,ログイン・ セッション中には, ログイン・コマンド・プロシージャが完了するまで,Ctrl/Y機能( 実行を中断し,制御をコマンド・インタプリタに渡す機能)を使用不可にすることが可能です。Ctrl/Y 機能を使用不可にするためには,DCLのSET NOCONTROL=Yコマンドを使用します。このコマンドを使用した場合は,ログイン・ コマンド・プロシージャが終了する前に Ctrl/Y機能を再設定するDCL コマンド(SET CONTROL=Y)を,コマンド・プロシージャに追加する必要があります。

例 6-2は,ユーザがログイン・ ファイルで定義できる典型的な省略形とシンボルの例です。

例 6-2 ユーザ・アカウント用ログイン・コマンド・ プロシージャ (LOGIN.COM)例

$ SET NOON
$ SET PROTECTION=(S=RD,O=RWED,G=R,W=R)/DEFAULT
$ !
$ ! Define abbreviations for often used commands
$ !
$ DIR*ECTORY    ==     DIRECTORY/DATE/SIZE
$ PU*RGE        ==     PURGE/LOG
$ DE*LETE       ==     DELETE/LOG/CONFIRM
$ !
$ !
$ ! Other useful abbreviations
$ !
$ SHP           ==     "SHOW PROCESS/PRIVILEGES"
$ PRI*NT        ==     "PRINT/NOTIFY"
$ SHD           ==     "SHOW DEFAULT"
$ UP            ==     "SET DEFAULT [-]"
$ SP            ==     "SET PROCESS/PRIVILEGES="
$ SQ            ==     "SHOW QUEUE/BATCH/ALL/DEVICE"
$ H*OME         ==     "SET DEFAULT SYS$LOGIN"
$ SUB*MIT       ==     "SUBMIT/NOTIFY"
$ SYS           ==     "SHOW SYSTEM"
$ DAY           ==     "SHOW TIME"
$ !
$ ! Set /LOG for all commands
$ !
$ BACK*UP       ==     "BACKUP/LOG"
$ DEL*ETE       ==     "DELETE/LOG"
$ LIB*RARY      ==     "LIBRARY/LOG"
$ PUR*GE        ==     "PURGE/LOG"
$ REN*AME       ==     "RENAME/LOG"
$ !
$ ! End of LOGIN.COM processing
$ !
$ GOTO 'F$MODE()
$NETWORK:
$ EXIT
$INTERACTIVE:
$ VN            ==     "SET TERMINAL/WIDTH=80"
$ VW            ==     "SET TERMINAL/WIDTH=132"
$ EXPERT        ==     "SET MESSAGE/NOFACIL/NOSEVER/NOIDENT"
$ NOVICE        ==     "SET MESSAGE/FACILITY/SEVERITY/IDENTIF"
$ NOVICE
$ !
$ ! Symbols for network users
$ !
$ SYSA          ==     "SET HOST SYSA"
$ SYSB          ==     "SET HOST SYSB"
$ SYSC          ==     "SET HOST SYSC"
$ EXIT                             ! End of interactive login
$BATCH:
$ SET VERIFY                       ! End of batch login
$ EXIT

ログアウト・コマンド・プロシージャの使用法

システムは,ログアウト時に自動的にコマンドを実行する機能を備えていません。 しかし,次のようにすると実行できます。

作業方法

  1. ユーザがログアウトするときに実行する,システム単位のログアウト・ コマンド・プロシージャを作成する。通常,ファイル名はSYS$MANAGER:SYLOGOUT.COM とする。

  2. このコマンド・プロシージャが必ず実行されるように,最も使用されるLOGOUT コマンドの省略形(LOなど)をSYS$MANAGER:SYLOGIN.COM に登録する。こうすれば,ログアウト・コマンド・プロシージャが実行される。

     $ LO*GOUT:==@SYS$MANAGER:SYLOGOUT

上記のように入力した後,LOGOUTコマンドの代替形(LOGOUTNOWコマンドなど) を使用します。LOで始まれば,どんな名前でも使用できます。しかし, シンボルとして使用される省略形とまったく同じ名前(この場合はLO) は使用できません。もう一度,このプロシージャを繰り返してしまうからです。 別の方法として,次のコマンドをコマンド・プロシージャの最終行の前に指定することもできます。

     $ DELETE/SYMBOL/GLOBAL LOGOUT

この方法が使用できない場合もあるので,代用方法が数多く用意されています。

6.7.2 ユーザ・アカウントの変更

AUTHORIZEユーティリティを使って設定したユーザ・アカウントのクォータや省略時のディレクトリ, パスワード,許可されている特権などの特性を変更する場合は,MODIFY コマンドを使用します。ただし,変更内容を有効にするためには, ユーザはいったんログアウトし,再度ログインする必要があります。

  1. ユーザがパスワードを忘れたためにログインできない場合には,AUTHORIZE のMODIFY/GENERATE_PASSWORDコマンドを使用して,ユーザのパスワードを変更します。 たとえば,次のコマンドはWELCHというユーザの新しいパスワードを生成します。
         UAF> MODIFY WELCH/GENERATE_PASSWORD
    

    省略時の設定では,ユーザWELCHはログイン後にパスワードを変更する必要があります。

  2. ユーザのレコードに加えた変更が有効になるのは,ユーザが次回ログインした後です。 たとえば,JONESというユーザのオープン・ファイル・ クォータ(FILLM)が20であると仮定します。このファイル制限を40 に増やす場合は,AUTHORIZEユーティリティから次のコマンドを実行します。
         UAF> MODIFY JONES/FILLM=40
    

    利用者登録ファイルを変更した時点でユーザJONESがログインしていた場合,JONES のすべてのプロセスはオープン・ファイル制限数が20のままです。 新しい制限数の40が有効になるためには,利用者登録ファイルの変更後,JONES がいったんログアウトし,もう一度ログインする必要があります。

6.7.3 ユーザ・アカウントのリスト作成

AUTHORIZEのLISTコマンドを使用すれば,SYSUAF.LISという,UAFに含まれるすべてのユーザ・ レコードの要約情報からなるファイルを作成することができます。 省略時の設定では,LISTコマンドは次のUAF項目について, 簡単なレポートを作成します。

UAFに含まれるのすべての情報(パスワードは除く)からなる詳細レポートを作成したい場合は,/FULL 修飾子を使用します。

6.7.4 ユーザ環境の保守

システムに変更を加える場合,システム管理者は次のことを行う必要があります。

こうした保守作業は,AUTHORIZEユーティリティを使い,UAFのレコードを変更または削除することによって行うことができます。

新しい省略時のレコード・テンプレートの作成

すべてのユーザが同じような種類の仕事をするシステム上では,新しいユーザを追加するとき, システムが提供する省略時のレコードDEFAULTをテンプレートとして使用します。 しかし,実際には,そのようなユーザもさまざまなカテゴリに別れていて, それぞれのカテゴリがある特定の仕事をしているので, 一意のレコード属性が必要になってきます。システムが提供する省略時のレコードをテンプレートとして使用して, 新しいユーザ・ レコードを追加するたびに膨大な変更を加えるのは大変です。したがって, その代わりの方法として,各ユーザ・カテゴリのテンプレートとして使用できる, 新しい省略時のUAFレコードを作成できます。

新しい省略時のUAFレコードを作成するにあたっては,次のことを行う必要があります。

作業方法

ユーザ・カテゴリを定義し,必要なレコード属性を作成したら,新しい省略時のレコードを定義します。

  1. 次は,特殊な機能別アカウントを必要とするユーザ・カテゴリ用の省略時のレコードを作成するコマンドの例。
         UAF> ADD DEFAULT2/LGICMD=ALT_COM_PROC/FLAGS=CAPTIVE -
         _UAF> /DEVICE=USER3:/DIRECTORY=[PRODUCT]
    

    この例では,システムに用意されている省略時のレコードDEFAULTを使用してDEFAULT2 というレコードを作成し,LGICMD,ログイン・フラグ, 省略時の装置,そして省略時のディレクトリ・フィールドを変更している。 この後,AUTHORIZEのCOPYコマンドを使用して,DEFAULT2と同じ属性を持つ別のレコードを作成することができる。

    COPYコマンドで,指定された省略時のレコードを使用した新しいUAFレコードを作成する。 ただし,明示的に書き換えられたフィールドについては, 新しい値に変更される。

  2. 次のコマンドは,新しいユーザ用に,省略時のレコードDEFAULT2 と同じレコードを作成する。
         UAF> COPY DEFAULT2 PALOOKA/PASSWORD=W7YA84MI/UIC=[360,114]
    

    この例では,DEFAULT2をテンプレートとして,PALOOKAというユーザ用の重複レコードを作成している。 変更しているのはパスワードとUICだけである。

6.7.5 ユーザ・アカウントの削除

アカウント,特に会話型アカウントと制約付きアカウントを削除するときに最も大きな問題となるのは, アカウントが使用していたファイルの削除です。

作業方法

次の手順に従ってください。

  1. 削除するユーザのファイルを,他のアカウントの所有権に有効なファイルにコピーする。 または,削除するユーザのファイルをそのまま残しておく。 前者の場合,ファイルの所有権UICを新しいユーザに一致するように変更する。 後者の場合,BACKUPユーティリティを使用して, バックアップ用テープやディスクにファイルをセーブしておくことも可能。

  2. パスワードを変更して,削除するアカウントのユーザとしてログインする。 これは,所有権が異なる他のファイルを指しているファイルを誤って削除しないようにするためである。 非特権アカウントから作業を行っている場合は, 誤ってファイルを削除するという可能性がなくなる。

  3. 次に示す手順で,最下位から最上位に向かって,該当アカウントのファイルとディレクトリを削除する。

    1. DCLのDIRECTORY [ディレクトリ指定 . . . ]を使って, すべてのサブディレクトリを探し出し,内容を調べる。このとき, ディレクトリ指定は,アカウントの省略時のディレクトリ名。

    2. 各サブディレクトリ内のファイルを削除し,続いてサブディレクトリを削除する。 所有者によるディレクトリ・ファイルの削除は禁止されているので, ディレクトリ・ファイルを削除する前に, 保護設定を変更する。

    3. アカウントの最上位ディレクトリを削除する。次の例は, 最下位ディレクトリから最上位に向って,アカウントのファイルを削除するコマンド・ プロシージャの例である。このプロシージャは特権アカウントで実行してはならない。

  4. ユーザ・アカウントを終了して特権アカウントに戻る。 AUTHORIZEユーティリティを使って,アカウントを削除する。

    AUTHORIZEを使ってユーザのUAFレコードを削除する際に,AUTHORIZE は,ライト・データベース中の識別子のホルダとしてユーザの接続も削除する。 切り離されたユーザが指定した識別子に対する唯一残っているホルダであった場合は, 混乱を避けるためその識別子を削除する。 『OpenVMS Guide to System Security』を参照。

  5. ディスク・クォータ・ファイルにユーザのディスク・クォータ・ エントリを登録している場合は,SYSMANを使ってエントリを削除する。

  6. MAILコマンドREMOVE ユーザ名を入力して関連メール情報を削除する( 『OpenVMSユーザーズ・ マニュアル』を参照)。

例 6-3は,アカウントのファイルを削除するコマンド・ プロシージャです。


注意
特権アカウントからこのコマンド・ プロシージャを実行しないよう注意してください。

例 6-3 アカウントのファイルを削除するコマンド・ プロシージャのテンプレート

$ !     DELTREE.COM - deletes a complete directory tree
$ !
$ !     P1 = pathname of root of tree to delete
$ !
$ !     All files and directories in the tree, including
$ !     the named root, are deleted.
$ !
$ IF "''DELTREE'" .EQS. "" THEN DELTREE = "@SYS$LIBRARY:DELTREE"
$ ON CONTROL_Y THEN GOTO DONE
$ ON WARNING THEN GOTO DONE
$ DEFAULT = F$LOGICAL("SYS$DISK") + F$DIRECTORY()
$10:
$ IF P1 .NES. "" THEN GOTO 20
$ INQUIRE P1 "Root"
$ GOTO 10
$20:
$ IF F$PARSE(P1) .EQS. "" THEN OPEN FILE 'P1'
$ SET DEFAULT 'P1'
$LOOP:
$ FILESPEC = F$SEARCH("*.DIR;1")
$ IF FILESPEC .EQS. "" THEN GOTO LOOPEND
$ DELTREE [.'F$PARSE(FILESPEC,,,"NAME")']
$ GOTO LOOP
$LOOPEND:
$ IF F$SEARCH("*.*;*") .NES. "" THEN DELETE *.*;*
$ DIR = (F$DIRECTORY()-"]"-">")-F$PARSE("[-]",,,-
         "DIRECTORY")-"]"-">")-"."-"["-"<"
$ SET PROTECTION=WORLD:RWED [-]'DIR'.DIR;1
$ DELETE [-]'DIR'.DIR;1
$DONE:
$ SET DEFAULT 'DEFAULT'

6.7.6 BACKUPによるユーザ・ファイルの削除

ユーザ全員がそれぞれ一意のUICを持つ場合は,ユーザのファイルがディレクトリ構造全体に散らばっていても,BACKUP ユーティリティを使用すれば特定のユーザのファイルを削除することができます。 詳細は『OpenVMSシステム管理ユーティリティ・ リファレンス・マニュアル(上巻)』のBACKUPユーティリティの説明を参照してください。

  1. 次は,BACKUPコマンドを使ってファイルを削除する例。
         $ BACKUP/DELETE PUBLIC:[...]/BY_OWNER=[21,103] MTA0:PUBLICUIC.SAV
    

    このBACKUPコマンドは,PUBLICというディスク上にあって,指定されたUIC が所有するファイルだけをコピーおよび削除する。ファイルのコピー先は, 装置MTA0のPUBLICUIC.SAVというセーブ・セットである。 BACKUP/DELETEはアカウントのディレクトリ・ファイル(ファイル・タイプ.DIR) は削除しない。

  2. 削除したファイルを回復させる場合は,次の形式でANALYZE /DISK_STRUCTUREコマンドを使用する。

    ANALYZE/DISK_STRUCTURE/REPAIR/CONFIRM 装置名

    削除したファイルの回復方法については第8.12.3項,ANALYZE/DISK_ STRUCTUREユーティリティについては,『OpenVMSシステム管理ユーティリティ・ リファレンス・マニュアル』を参照。

6.7.7 ユーザ・アカウントの使用禁止

アカウントを削除せずに,使用禁止にだけする場合には, AUTHORIZEを使用してユーザ・ アカウント使用禁止フラグ(/FLAGS=DISUSER)を設定します。 ただし,このコマンドを実行した時点でユーザがすでにログインしている場合には, そのユーザがログアウトした後で,アカウントは使用禁止になります。

6.8 ユーザ・アカウントの制限

作業負荷スケジュールを検討してみると,ある特定の作業が特定の曜日または時刻に集中することがあります。 作業の性質によって,あるユーザのログインを制限したいことがあります。AUTHORIZE ユーティリティを使用すれば,UAF レコードのログイン特性フィールドを調整できます。つまり, あるユーザがログインできる曜日または時刻を制限したり,あるログイン機能を禁止したりすることが可能です。

以降の項では,次の作業を実行する方法について説明します。

作業 参照箇所
曜日タイプの設定 第6.8.1 項
ログイン時刻の制約 第6.8.2項
ログイン機能の制約 第6.8.3 項
制約付きまたは機能別アカウント用ログイン・ コマンド・プロシージャの使用法 第6.8.4項
ユーザ・プロセスに対する優先順位の設定 第6.8.5項

アカウントの制約に使用する修飾子についての詳細は,『OpenVMSシステム管理ユーティリティ・ リファレンス・マニュアル』のAUTHORIZEユーティリティの説明を参照してください。

6.8.1 曜日タイプの設定

各曜日を主曜日または副曜日のいずれかに定義し,それらの曜日タイプにログイン制約を設定することによって, アカウントの使用を制約することができます。 たとえば,土曜と日曜を副曜日と定義し,副曜日にログイン制約を設定した場合は, その制約は土曜と日曜の両方に適用されます。

曜日タイプに設定可能なログイン制約は次の2とおりあります。

制約 説明
時間制約 曜日の特定の時刻のみログインを許可する。
機能制約 ログイン・ タイプを制限する。

省略時のユーザ・レコードでは,月曜から金曜までの平日を主曜日,土曜と日曜の週末を副曜日と定義しています。

曜日の定義と制約の設定は,サイトによって異なります。たとえば,平日にはシステムが大人数の会話型ユーザをサポートし, 週末はシステム資源を占有する必要がある特定の処理に使用すると仮定します。 このような場合, 副曜日に制限を設けることによって,副曜日として定義した曜日の間はユーザがシステムにアクセスしないようにすることができます。 こうした曜日タイプの定義の変更は,AUTHORIZE の次の修飾子を使って行います。

     /PRIMEDAYS=([NO]day[,...])

/PRIMEDAYS修飾子には,主曜日と副曜日と定義する曜日名のリストを指定します。 ある曜日を副曜日と定義する場合は,曜日名の前に接頭辞NOを付けてください。 リストに指定されなかった曜日は省略時の値を取ります。

6.8.2 ログイン時刻の制約

省略時の設定では,ログイン時刻の制約はありません。ログイン時刻を制約したい場合は,AUTHORIZE の次の修飾子を使用します。

修飾子 意味
/[NO]ACCESS すべてのモードのログインについてアクセス時刻を指定
/[NO]DIALUP ダイアルアップ・ターミナルからの会話型ログインについてアクセス時刻を指定
/[NO]INTERACTIVE ターミナルのタイプに関係なく会話型ログインについてアクセス時刻を指定
/[NO]LOCAL ローカル・ ターミナルからの会話型ログインについてアクセス時刻を指定
/[NO]REMOTE ネットワーク遠隔ターミナルからの会話型ログインについてアクセス時刻を指定(SET HOST)

アクセス時刻を過ぎてもユーザがログアウトしない場合は,そのユーザに次の警告メッセージが出され, ジョブ・コントローラによるプロセスの終了前のログアウト猶予時間が2 分が与えられます。

     JBC-W-RESTRICT, UAF restricts access at this time, please log out immediately

6.8.3 ログイン機能の制約

時刻別のログイン制約の他に,AUTHORIZEユーティリティで/FLAGSを使用することにより, アカウントに機能制約を設定することができます。省略時の設定では, ログイン機能の制約はありません。/FLAGS修飾子には,次のオプションを指定することができます。

キーワード 意味
[NO]AUDIT 機密保護関連のすべての動作を監査する[ またはしない]。
[NO]AUTOLOGIN 自動ログインが有効な場合は,自動ログイン以外のアクセスを禁止する[ またはしない]。
[NO]CAPTIVE ログイン時の省略時の値の変更を 禁止する[またはしない] (暗黙のDISCTLY)。
DCLコマンド・レベルのユーザ・アクセスを禁止する[ またはしない]。
[NO]DEFCLI 省略時のCLIとCLIテーブルの変更を禁止する[またはしない] 。
[NO]DISCTLY Ctrl/Y割り込みを禁止する[またはしない]。
[NO]DISFORCE_PWD_CHANGE ログイン時に期限切れのパスワードを変更する条件を無効にする[ またはしない]。
[NO]DISIMAGE RUNおよびMCRコマンドの使用と, 「フォーリン」コマンドの実行を禁止する[またはしない] 。
[NO]DISMAIL ユーザへのメール配送を禁止する[ またはしない]。
[NO]DISNEWMAIL "New Mail . . . "通知の出力を禁止する[ またはしない]。
[NO]DISPWDDIC システム・ディクショナリに基づく新しいパスワードの自動スクリーニングを無効にする[ またはしない]。
[NO]DISPWDHIS ユーザの古いパスワードに基づく新しいパスワードの自動検査を無効にする[ またはしない] 。
[NO]DISRECONNECT ターミナル接続が中断されたときに,既存のプロセスに対する自動的な再接続を禁止する[ または禁止しない]。
[NO]DISREPORT ログイン情報(前回ログイン日付とログイン失敗など) を表示する[またはしない]。
[NO]DISUSER アカウントを完全に使用不可にする[ またはしない]。
[NO]DISWELCOME "Welcome to . . . "ログイン・メッセージの出力を禁止する[ またはしない]。
[NO]GENPWD 生成されたパスワードの使用を求める[または求めない] 。
[NO]LOCKPWD パスワードの変更を禁止する[ またはしない]。
[NO]PWD_EXPIRED 期限切れのマークをパスワードに付ける[ または付けない]。
[NO]PWD2_ EXPIRED 期限切れのマークを第2パスワードに付ける[ または付けない]。
[NO]RESTRICTED ログイン時の省略時の値の変更を禁止する[またはしない] 。

6.8.4 制約付きまたは機能別アカウント用ログイン・ コマンド・プロシージャの使用法

制約付きまたは機能別アカウント用のログイン・コマンド・プロシージャの定義には,AUTHORIZE のADD,MODIFY,COPYコマンドに/LGICMD修飾子を使用します。 制約付きまたは機能別アカウントにログインしているユーザは,/CLI ,/DISK,/COMMAND,/NOCOMMAND,/TABLESのいずれかのログイン修飾子を使って, ログイン・コマンド・プロシージャを変更することはできません。

CAPTIVEとRESTRICTEDフラグは以下のことを実行します。

ログインを終えた制約付きアカウントのユーザはDCLレベルで操作を行い, 使用可能な任意のソフトウェアにアクセスすることができます。

システム管理者が次のことを守っている場合,機能別アカウントのユーザは, 特定のアプリケーション・ソフトウェアにロックされ,DCLレベルのアクセスは拒否されます。

たとえば,ある在庫システムに使用されている機能別アカウント用の簡単なログイン・ コマンド・プロシージャが次のコマンドから構成されていると仮定します。

     $ DEFINE SYS$DISK DISK$INVENT
     $ RUN INVENTORY
     $ LOGOUT

INVENTORYというアプリケーション・プログラムは,ユーザがアカウントへログインすると制御を受け取ります。 システム管理者は,AUTHORIZE の/FLAGS=CAPTIVE修飾子を指定することによって,このアカウントのUAF レコードのログイン・フラグ・フィールドにCAPTIVEフラグを設定しておく必要があります。AUTHORIZE による機能別アカウントのUAFレコードの作成方法については, 第6.7.4項を参照してください。

例 6-4は,高度の機密保護が必要な機能別アカウントのコマンド・ プロシージャの例です。ユーザが使用可能なコマンドを非常に狭い範囲に限定しています。 システム管理者は,アカウント所有者によるログイン・ コマンド・プロシージャとそのディレクトリへの書き込み権を確実に拒否する必要があります。 また,機密保護管理者は, このアカウントを作成するときにAUTHORIZEの/NOINTERACTIVE修飾子を使用することになります。

機能別アカウントと制約付きアカウントについての詳細は,『OpenVMS Guide to System Security』を参照してください。

例 6-4 機能別アカウント用のコマンド・ プロシージャの例

$ deassign sys$input
$ previous_sysinput == f$logical("SYS$INPUT")
$ on error then goto next_command
$ on control_y then goto next_command
$ set control=(y,t)
$
$next_command:
$ on error then goto next_command
$ on control_y then goto next_command
$
$ if previous_sysinput .nes. f$logical("SYS$INPUT") then deassign sys$input
$ read/end=next_command/prompt="$ " sys$command command
$ command == f$edit(command,"UPCASE,TRIM,COMPRESS")
$ if f$length(command) .eq. 0 then goto next_command
$
$ delete = "delete"
$ delete/symbol/local/all
$ if f$locate("@",command) .ne. f$length(command) then goto illegal_command
$ if f$locate("=",command) .ne. f$length(command) then goto illegal_command
$ if f$locate("F$",command) .ne. f$length(command) then goto illegal_command
$ verb = f$element(0," ",command)
$
$ if verb .EQS. "LOGOUT" then goto do_logout
$ if verb .EQS. "HELP" then goto do_help
$
$ write sys$output "%CAPTIVE-W-IVVERB, unrecognized command \",verb,"\"
$ goto next_command
$
$illegal_command:
$ write sys$output "%CAPTIVE-W-ILLEGAL, bad characters in command line"
$ goto next_command
$
$do_logout:
$ logout
$ goto next_command
$
$do_help:
$ define sys$input sys$command
$ help
$ goto next_command

6.8.5 ユーザ・プロセスに対する優先順位の設定

ユーザの優先順位は,システムがユーザに代わって作成したプロセスをスケジューリングするときに使用される基本優先順位です。

VAXシステムの場合,優先順位は最も低い値で0,最も高い値で31です。0 から15はタイムシェアリング優先順位,16から31はリアルタイム優先順位になります。

Alphaシステムの場合,優先順位は最も低い値で0,最も高い値で63です。 0から15はタイムシェアリング優先順位,16から63はリアルタイム優先順位になります。

リアルタイム優先順位のプロセスは,厳密に基本優先順位に従ってスケジューリングされます。 言い替えれば,最も高い基本優先順位を持つ実行形式のリアルタイム・ プロセスが最初に実行されるということです。タイムシェアリング優先順位のプロセスは, 計算や入出力処理が重なって行われるよう, これとは少し異なる原理に従ってスケジューリングされます。

UAFのユーザ・アカウント・レコードでは,ユーザの優先順位の省略時の値は4 です。実用的には,最小値は0です。タイムシェアリング・ユーザの優先順位は必ず省略時の設定のままにしておいてください。 システムは小さな基本優先順位の違いにも敏感に反応しますから, 一部のユーザだけ優先順位を上げると, 性能の整合性が取れなくなります。

6.9 特殊アカウントの設定

システム管理者は,自動ログイン・アカウント,プロジェクト・アカウント, 代理アカウントなどの各種の特殊アカウントを設定しなければならない場合があります。 以降の項では,次の作業方法を説明します。

作業 参照箇所
SYSMANによる自動ログイン・アカウントの設定 第6.9.1項
ACL識別子を用いたプロジェクト・アカウントの設定 第6.9.2項
ネットワーク代理登録ファイルの作成 第6.9.4項
代理アカウントの追加 第6.9.5項
代理アカウントの削除 第6.9.6 項
代理アカウントの表示 第6.9.7項
代理ログインの制御 第6.9.8 項

第6.9.3項はネットワーク代理アカウントの説明です。

6.9.1 SYSMANによる自動ログイン・アカウントの設定

SYSMANユーティリティには,自動ログイン機能(ALF)という機能があります。SYSMAN ALF コマンドを使用すれば,特定のユーザ名で自動的にログインできるようにターミナルを設定することができます。 たとえば,ターミナルをINVENTORY というアカウント用に設定し,ユーザがReturnキーを押したとき自動的に機能別アカウントにログインさせることも可能です。

自動ログイン・アカウントを設定するためには,まず前節で説明した手順で最上位の省略時のディレクトリを作成して, アカウントを追加する必要があります。 そして,次の形式で特定のターミナルまたはポートにそのアカウントを関連付けます。

ALF ADD 装置名 ユーザ名[/TERMINAL] [/PORT] [/PROXY] [/LOG]

装置名 ユーザ名に関連付けるターミナルまたはポート名。 コマンド行に修飾子を指定していない場合は,ターミナル名を指定する。
ユーザ名 特定のターミナルまたはポートに関連付けるアカウント・ ユーザ名。
/TERMINAL この修飾子を指定すると,SYSMANは装置をターミナル名と見なす(省略時の設定) 。
/PORT この修飾子を指定すると,SYSMAN は装置をポート名と見なす。ポート名にスラッシュ(/) などの特殊文字,または小文字を含む場合は,ポート名を引用符で囲む必要がある。 引用符内に記述したとおりにALFデータベース・ ファイルに書き込まれるので注意する。たとえば,実際のポート名に特殊文字と大文字が含まれる場合には, 大文字が引用符内に指定されていることを確認する。 そうしなければ,実際のポート名とSYSALF.DAT ファイルに指定された名前が一致しなくなる。
/PROXY この修飾子を指定すると,SYSMANは装置 が,最高63文字でNODE::USERNAMEの形式になっているかチェックする。
/LOG この修飾子を指定すると,SYSMAN は装置名およびユーザ名がALFデータベースに追加されたことを示すメッセージを表示する。

自動ログイン・アカウントを保護するには,AUTOLOGINフラグをアカウントのUAF レコードに設定してください。このフラグは自動ログイン,バッチ, およびネットワーク代理だけでアカウントを使用できるように設定します。

SYSMANを起動して,TTA0というターミナルを INVENTORY25アカウントに関連付けている例を次に示します。

     $ RUN SYS$SYSTEM:SYSMAN
     SYSMAN> ALF ADD TTA0 INVENTORY25

代理アカウントにALFレコードを作成した場合には,装置パラメータは最高63 文字です。たとえば,次のようになります。

     SYSMAN> ALF ADD VMS:.ZKO.VMSORG.SYSMAN.CLIENT1::SYSTEM FOOBAR

上記のコマンドでは,VMS:.ZKO.VMSORG.SYSMAN.CLIENT1::SYSTEMが装置 パラメータの値です。

自動ログインアカウントとSYSMANのALFコマンドについての詳細は,『OpenVMSシステム管理ユーティリティ・ リファレンス・マニュアル』と 『OpenVMS Guide to System Security』を参照してください。

6.9.2 ACL識別子を用いたプロジェクト・ アカウントの設定

この項では,ACL (アクセス制御リスト)を使用して,プロジェクト・アカウントを設定する方法について説明します。 アクセス制御リストを使用することによって, プロジェクト・グループのメンバが共用するファイルのアクセスを制御します。ACL を用いたアカウントの設定についての詳細は, 『OpenVMS Guide to System Security』を参照してください。

作業方法

まず,このプロジェクト・アカウント用ライト・データベースに識別子を追加します。 ライト・データベースに識別子を追加するためには, AUTHORIZEのADD/IDENTIFIERコマンドを使用します。次に,AUTHORIZEのGRANT/IDENTIFIER コマンドを使用して,ユーザを既存のACL識別子の所有者として関連付けます。 こうして,このプロジェクトの識別子を持つすべてのユーザはこのプロジェクトのディスク空間を使用できます。

また,プロジェクト識別子にResource属性を割り当てることによって, 個々のユーザではなく,プロジェクトにディスク空間を割り当てるように, プロジェクト・アカウントを設定することもことができます。

次は,プロジェクト・アカウントを設定する手順を次に示します。

  1. プロジェクト・アカウントを共用する各メンバに対する個人ユーザ・ アカウントを設定する(ユーザ・アカウントについては 第6.5節第6.6節参照)。

  2. Resource属性を使用してプロジェクト識別子を作成し,プロジェクト・ アカウントにアクセスするユーザに識別子を付与する。次は,KITE_FLYING というプロジェクト識別子にResource属性を割り当てている例である。 そして,GEORGEとLINDORFというユーザに,この識別子が割り当てられている。
         $ RUN SYS$SYSTEM:AUTHORIZE
         UAF> ADD/IDENTIFIER KITE_FLYING/ATTRIBUTES=RESOURCE
         {message}
         UAF> GRANT/IDENTIFIER KITE_FLYING GEORGE/ATTRIBUTES=RESOURCE
         {message}
         UAF> GRANT/IDENTIFIER KITE_FLYING LINDORF/ATTRIBUTES=RESOURCE
         {message}
         UAF> EXIT
    

  3. プロジェクト識別子にディスク・クォータ値を設定する。たとえば, 次のコマンド例は,SYSMANを起動して,KITE_FLYING識別子にディスク・ クォータ値として2,000ブロック,超過値として200ブロックを割り当てている。
         $ RUN SYS$SYSTEM:SYSMAN
         SYSMAN> DISKQUOTA ADD KITE_FLYING/PERMQUOTA=2000/OVERDRAFT=200
         SYSMAN> EXIT
    

  4. プロジェクト・ディレクトリを作成する。たとえば,次のDCL コマンド例は,[KITE_FLYING]というプロジェクト・ディレクトリを作成し,KITE_FLYING 識別子を所有者に設定している。
         $ CREATE/DIRECTORY [KITE_FLYING]/BY_OWNER=[KITE_FLYING]
    

  5. 作成したプロジェクト・ディレクトリに,必要なACLと省略時のACL を設定する。たとえば,次のDCLコマンド例は,[KITE_FLYING]というディレクトリにACL を格納することによって,KITE_FLYINGという識別子を持つユーザであれば,[KITE_FLYING] ディレクトリに対する読み込み, 書き込み,そして,実行権を持つということを表している。 ここでもまた,このディレクトリで作成されたファイルは,必ず,省略時の設定として, ディレクトリと同じ次のようなACE (アクセス制御リスト・ エントリ)を受け取るようになっている。
         $ SET SECURITY [000000]KITE_FLYING.DIR;1 -
         _$ /ACL=((DEFAULT_PROTECTION,S:RWED,O:RWED,G,W) -
         _$ (IDENTIFIER=KITE_FLYING, ACCESS=READ+WRITE+EXECUTE), -
         _$ (IDENTIFIER=KITE_FLYING,OPTIONS=DEFAULT,ACCESS=READ+WRITE+EXECUTE))
    

ディレクトリとファイル(KITE_FLYING)の所有者識別子がプロジェクト・ メンバのUICと一致することはないため,アクセス権はACLエントリを介して付与する必要があります。 つまり,通常のユーザからのアクセスは, UICに基づく保護マスクを介してしか行えません。指定されたACLの最初のACE は,プロジェクト・メンバ全員にディレクトリに対する読み込み,書き込み, および実行権を付与しています。そして2番目のACEは,ディレクトリに作成されたすべてのファイルに対する読み込み, 書き込み,および実行権を同じプロジェクト・ メンバの全員に付与しています。

プロジェクト・メンバは,他のメンバの作成したファイルを削除したり, 制御したりすることはできません。ただし,ファイル・システムは,UIC に基づく保護マスクのOWNERフィールドに指定されたアクセス権の他に, 作成者制御アクセス権を付与する省略時のACLエントリも提供するため, 各メンバがそのディレクトリに作成したファイルに対してすべてのアクセス権を持ちます。 このACEが生じるのは,作成したファイルの所有者が作成者のUIC と一致しない場合だけです。

たとえば,LINDORFというユーザが[KITE_FLYING]THURSDAY.TXTというファイルを作成した場合, そのファイルは省略時の設定では次の内容のアクセス制御リストを受け取ります。

     (IDENTIFIER=LINDORF,OPTIONS=NOPROPAGATE,
     ACCESS=READ+WRITE+EXECUTE+CONTROL)
     (IDENTIFIER=KITE_FLYING,ACCESS=READ+WRITE+EXECUTE)

ACLエディタのCreator ACEコマンドを使って,Creator ACEを割り当てたディレクトリ内に作成したファイルのACL に, ACEを追加することができます。Creator ACE は,次の条件が成立するときだけ適用されます。

Creator ACEについての詳細は,『OpenVMSシステム管理ユーティリティ・ リファレンス・マニュアル』と『OpenVMS VAX Guide to System Security』を参照してください。

6.9.3 ネットワーク代理アカウント

ネットワーク代理アカウントとは,ネットワーク上の遠隔ノードのユーザが別のノードのローカル・ アカウントを介してデータにアクセスすることを可能にするアカウントです。 代理アカウントは,遠隔ノードの1 人または複数のユーザに特定のファイルに対するアクセス権を付与したいが, 私用アカウントを与える必要まではないといった場合に有効です。 通常,代理アカウントは制約付きアカウントとして設定します。また代理アカウントの登録と制御は,AUTHORIZE ユーティリティを使って行います。

代理アカウントを使用すれば,遠隔ノード上の1人または複数のユーザに対して, ローカルのシステム上の特定のアカウントからデータをアクセスするDCL コマンドの入力を許可できます。代理アカウントは,ローカルのシステムにログインしなくても, あるいは,アクセス制御文字列を使用しなくても, 特定のローカルのデータなら遠隔ノード上のユーザでもアクセスできます。 遠隔ユーザはローカルのアカウントと同じファイル・アクセス権を持ち, さらには,ローカル・アカウントの省略時の特権も持つと想定されます。 以降の項では,代理アカウントを設定する手順を説明します。

複数のバージョンが混在したOpenVAX Clusterシステムで,すべての代理データベースの一貫性を保つには, 次のいずれかのシステムからすべての代理データベース変更を実行する必要があります。

この制限を守ると,NET$PROXY.DATデータベースが正しい代理情報で更新されます。

代理アカウントのさらに詳しい内容については,『OpenVMS Guide to System Security』を参照してください。

6.9.4 ネットワーク代理登録ファイルの作成

代理アカウントは,遠隔ノードのユーザがローカル・ノードにアカウントを持っているかのように, ローカル・ノードにログインすることを可能にするアカウントです。 代理アカウントは,AUTHORIZEユーティリティを使って作成および保守します。AUTHORIZE ユーティリティについての詳細は, 『OpenVMSシステム管理ユーティリティ・ リファレンス・マニュアル』を参照してください。

OpenVMSシステムの場合,次の情報が2つの代理登録ファイルNETPROXY.DAT およびNET$PROXY.DATに格納されています。

ローカル・システムのSYSUAF.DATAファイルは,代理アカウントをユーザ・ アカウントに関連付ける必要があります。したがって,UAFには,代理アカウント用に「標準アクセス」アカウントを登録しておきます。 たとえば, 他のシステムのユーザからの入力を利用して,マーケティングの報告書を作成するユーザ・ グループがあるとします。そこで,REMOTE_MKTという名前で, ローカル・システムのいくつかのデータ・ファイルに対するアクセスのみ許可するアカウントを登録します。

この場合,SYSUAF.DATのREMOTE_MKTアカウントには,マーケティング・グループに割り当てたのと同じグループ番号と省略時の特権を割り当てます。 こうすれば,遠隔側の寄稿者はマーケティング・グループのユーザが「所有」していて, グループ・アクセスが禁止されていない任意のデータ・ ファイルにアクセスすることができます。

作業方法

AUTHORIZEコマンドCREATE/PROXYを使用して,次のようにネットワーク代理登録ファイルを作成および初期化します。

     UAF> CREATE/PROXY

6.9.5 代理アカウントの追加

代理アカウントは,ネットワーク代理登録ファイルにエントリを追加することによって作成します。 エントリを作成することによって,遠隔ノードのユーザはローカル・ ノードのユーザと等価になります。

作業方法

代理アカウントを追加するコマンド構文は次のとおりです。

ADD/PROXY ノード名::遠隔ユーザ名  ローカル・ユーザ名/DEFAULT [,...]

遠隔ユーザには,省略時の代理アカウント1つと代替代理アカウント15個の, 合計16個までのローカル・アカウントへのアクセスを許可することができます。 省略時の代理アカウントを指定する場合は,/DEFAULT修飾子を使用してください。

  1. 次は,ユーザ代理アカウントを追加しているコマンドの例である。
         UAF> ADD/PROXY HAL::WALTER REMOTE_MKT/DEFAULT,PROXY2,PROXY3
    

    ローカル・ノードにREMOTE_MKT,PROXY2,PROXY3という3つのアカウントがすでに作成されていると仮定する。 この例では,HALという遠隔ノードのWALTER というユーザが,ローカル・ノードのREMOTE_MKTアカウントを介してデータにアクセスする権限を取得している。 つまり,ユーザWALTER は,REMOTE_MKTがローカルにアクセス可能なデータであれば, 自分のノードからアクセスすることがでる。PROXY2またはPROXY3 を介してデータにアクセスする場合,WALTERはネットワーク・ファイル操作に使用するDCL コマンドのアクセス制御文字列に目的の代理アカウントを指定する必要がある。


    重要
    遠隔ユーザはローカル・ユーザと同じ特権を受け取るため, 特殊な特権を持つローカル・アカウントに代理アカウントを関連付けないでください。 遠隔ユーザに特別なアクセス権を付与することは, システムの機密保護から見て脅威になります。

  2. 遠隔ユーザをユーザ名で指定できる。ユーザ名構文を認識しない遠隔システムの場合,UIC ( 利用者識別コード)で指定する。次の例は,RSTS32 という遠隔ノード上の[360,54]という利用者識別コードを持つユーザに対して, ローカル・ノード上のGENERICアカウントへの代理アクセスを許可している。
         UAF> ADD/PROXY RSTS32::[360,54] GENERIC/DEFAULT
    

  3. 遠隔ノード上にアカウントを持つユーザが複数いると仮定する。 彼らは,自分たちのローカル・ファイルに対してレディ・アクセスを要求している。 この場合,システム管理者は,彼らにそれぞれアクセスを認める, ネットワーク代理登録ファイルのレコードを作成する。 このとき,ローカル・システムと遠隔システムでのユーザ名は同じにする必要がある。 次の形式のADD /PROXYコマンドは,このようなレコードを追加する。
         UAF> ADD/PROXY HAL::* */DEFAULT
    

    このコマンドによって,HALという遠隔ノード上のすべてのユーザが, ユーザのローカル・システムで,遠隔と同じ名前のアカウントにアクセスできる。

    同様に,1人のユーザにのみ,このようなアクセスを許可することもできる。

         UAF> ADD/PROXY HAL::BARBARA */DEFAULT
    

  4. DECnet-Plusが稼動しているシステム上では,システムによって,DECnet-Plus の完全名を使ってネットワーク代理登録ファイルNET$PROXY.DAT に対してネットワーク代理が追加される。たとえば,次のようになる。
         UAF> ADD/PROXY RUBY::DELAPORT DELAPORT/DEFAULT,SYSTEM
         %UAF-I-NAFADDMSG, proxy from OMNI:.US.RUBY::DELAPORT to DELAPORT added
         %UAF-I-NAFADDMSG, proxy from OMNI:.US.RUBY::DELAPORT to SYSTEM added
    

    この例は,RUBY::DELAPORTからの代理アクセスを,ローカル・アカウントDELAPORT ( 省略時の値)およびSYSTEMに追加している。

    システムはノード同義語を,DECnet for OpenVMSで使用したり,レイヤード製品の下位互換性を保つためにNETPROXY.DAT に追加格納している。

6.9.6 代理アカウントの削除

代理アカウントを削除するには,AUTHORIZEコマンドREMOVE/PROXYを使用します。

     UAF> REMOVE/PROXY RUBY::DELAPORT SYSTEM

このコマンドは,RUBY::DELAPORTからローカルSYSTEMアカウントへの代理アクセスを削除します。

6.9.7 代理アカウントの表示

代理アカウントは,AUTHORIZEコマンドSHOW/PROXYを使用して表示できます。 このコマンドでは最高1024文字までを処理することができますが,表示するのはノード名の最初の255 文字だけです。

次の例は,RUBY::DELAPORTからローカル・アカウントDELAPORTへの代理アクセスが, ネットワーク代理登録ファイルに省略時の設定として追加されていることを仮定しています。2 番目の例では,DECnet-Plusを使用した場合のRUBY::DELAPORT と同等の内容を示しています。

  1. DECnet for OpenVMSが稼働しているシステムの場合,システムは次のような情報を表示する。
         UAF> SHOW/PROXY *::*
    
         RUBY::DELAPORT
              DELAPORT (D)
    

    (D)はDELAPORTが省略時の値であることを示している。

  2. DECnet-Plusが稼動しているシステムの場合,システムは次のように完全名の形式で情報を表示する。
         UAF> SHOW/PROXY *::*
    
         OMNI:.US.RUBY::DELAPORT
             DELAPORT (D)
    

    (D)はDELAPORTが省略時の値であることを示す。

    SHOW/PROXYコマンドで/OLD修飾子を使用すると,情報を旧フォーマットのNETPROXY.DAT データベースで表示できる。

         UAF>  SHOW/PROXY/OLD *::*
    

6.9.8 代理ログインの制御

代理ログイン要求が起こると,システムは必ず関連ノードの代理アクセスが有効になっているかチェックします。 省略時の設定では,すべてのノードが両方向とも有効です。

DECnet for OpenVMSが稼働しているシステムの場合,ネットワーク制御プログラム(NCP) を使用して代理アクセスを変更または削除することができます。 NCP を使用して代理アクセスを制御する方法についての詳細は, 『DECnet for OpenVMS Networking Manual』を参照してください。

DECnet-Plusソフトウェアが稼動しているシステムの場合, ネットワーク制御言語ユーティリティ(NCL)を使用して代理アクセスを変更できます。NCL の使用方法については,『DECnet-Plus Network Control Language Reference』を参照してください。

6.10 MAILアカウントの管理

ユーザ・アカウントの管理では,ユーザのメール・アカウントを管理する必要もあります。 たとえば,次のような管理作業があります。

以降の項で上記の作業方法を説明します。

6.10.1 ユーザ・レコードの変更

すべてのユーザは,MAILに用意されている各種のSETおよびSHOWコマンドを使用して, 自分自身のレコードに関する情報を変更または表示することができます。 このようなコマンドは,各ユーザの情報を持つ,単一キー索引順編成ファイルSYS$SYSTEM:VMSMAIL_PROFILE.DATA にアクセスします。

SYSPRVを使用すれば,他のユーザのレコードを変更することができます。 ユーザ・プロファイル・レコードを構成するフィールドと,そのフィールドの変更に使用可能なMAIL コマンドの対応を表 6-7に示します。

表 6-7 MAILユーザ・プロファイル・レコード

フィールド コマンド
ユーザ名 ---
転送先アドレス SET FORWARD
個人名 SET PERSONAL_NAME
エディタ名 SET EDITOR
SEND /REPLYコピー・フラグ SET COPY_SELF
自動パージ・フラグ SET AUTO_PURGE
メール・ファイル・サブディレクトリ名 SET MAIL_DIRECTORY
新規メール数 READ/NEW
省略時のキュー SET QUEUE
省略時の形式 SET FORM
コピーの使用 SET CC_PROMPT

SET FORWARD/USER= ユーザ コマンドを使用すれば,システムにアカウントのないユーザのメール転送を手配することができます。

6.10.2 ユーザ・レコードの削除

通常は,UAFからユーザ・レコードを削除したら,ユーザ・プロファイル・ ファイルからもそのユーザの情報を削除します。ユーザ・プロファイル・ ファイルからレコードを削除する場合は,REMOVEコマンドを使用します。

6.10.3 AUTHORIZEフラグとMAIL

ユーザのUAFレコードには,ユーザのMAIL環境に影響するフラグが含まれています。AUTHORIZE の/FLAGS修飾子を使用して,ユーザ・アカウントのフラグを設定することができます。

フラグ 意味
[NO]DISNEWMAIL ユーザがシステムにログインしたときに新しいメール数を表示する[ またはしない]。
[NO]DISMAIL 新しいメールを受信する[ またはしない]。

6.11 システム資源の管理

この節では,UAFレコードを作成するときにユーザ・プロセスに設定可能な資源制御属性について詳しく説明します。

6.11.1 ページおよびページレット

VAXおよびAlphaシステムは,ページという単位でプロセスにメモリを割り当てたり, 解放したりします。VAXシステムでは,1ページの大きさは512 バイトです。Alphaシステムでは,8KB (8192バイト),16KB, 32KB,64KBのいずれかに設定することができます。Alphaシステムの中には,4 つのページ・サイズのうち1つしか設定できないものもあります。マシンの初期設定は8 K バイト・ページです。

ほとんどの場合,Alphaシステムは,ページレットという512 バイトの単位でユーザとメモリを処理します。したがって,Alpha 1ページレットはVAX の1ページと同じ大きさです。また,Alpha 8KBコンピュータでは,Alpha 16 ページレットがAlpha 1ページと等しくなります。ページ, ページレット,バイトの関係を次に示します。

     One Alpha pagelet = one VAX page      = 512 bytes
     One Alpha page    = 16 Alpha pagelets = 16 VAX pages = 8192 bytes

AUTHORIZEユーティリティのコマンド,パラメータ,省略時の値は同じですが,Alpha システムの場合,ユーザによってはメモリに関係するプロセス・ クォータの省略時の値が適切でないことがあります。

Alphaシステムの管理についての詳細は, 『A Comparison of System Management on OpenVMS AXP and OpenVMS VAX』を参照してください。 このマニュアルは,OpenVMSマニュアルCD-ROMに保管されており,PostScript およびDECW$BOOK (Bookreader)形式で利用できます。

6.11.2 システム資源の制限の設定

システムのすべてのユーザは,システム・メモリ,揮発性(ページファイル) ディスク空間,プロセス数,入出力要求などの資源の消費について制約を受けます。 そして,そうした制約を課すのはシステム管理者の仕事であり,AUTHORIZE ユーティリティを使ってユーザにアカウントを作成するときに行います。

制限とは,あるプロセスが,自分に割り当てられた資源を,自分で作成したサブプロセスと, どのように共用するかを制御する手段です。1人のユーザまたは1 つのアカウントが一度に扱えるプロセスの数を制限するだけでなく, システムは資源の共用に4つの制限の種類を使用します。表 6-1 に,4つの制限の種類とその説明を示します。

表 6-8は,アカウントを作成するときに設定可能な制限項目の一覧です。 個々の制限項目について,SYSTEMアカウントと DEFAULT アカウントに対するUAFレコード内の値と制限の種類を示してあります。 また表の後には,それら制限項目について個々に説明します。 通常,それらシステム資源には省略時の制限値を割り当てます。 ただし,最適な性能を実現するという観点から制限値を検討し,調整したい場合は, 『Guide to OpenVMS Performance Management』で解説されている方法参照してください。

表 6-8には,これらの制限値のほか, SYSTEMとDEFAULTアカウントのUAFレコードに対して用意されている値と制限の種類についてもまとめてあります。

表 6-8 SYSTEMおよびDEFAULTアカウントに対する制限と推奨値

制限項目 VAXのSYSTEM に対する値 VAXのDEFAULT に対する値 AlphaのSYSTEM に対する値 AlphaのDEFAULT に対する値 タイプ[1] 説明
ASTlm 50 40 250 250 N ASTキュー制限
BIOlm 40 40 150 150 N 入出力バッファリング制限
Bytlm 32768 32768 64000 64000 P 入出力バッファリングバイト数制限
CPU 0 0 0 0 D CPU時間制限(0= 制限なし)
DIOlm 40 40 150 150 N 直接入出力回数制限
Enqlm 300 200 2000 2000 P キュー登録クォータ
Fillm 300 300 100 100 P オープン・ ファイル制限
JTquota 4096 4096 4096 4096 P ジョブ全体の論理名テーブルに対する初期バイト数クォータ
Maxacctjobs 0 0 0 0 S アカウント1つあたりの最大アクティブ・プロセス数(0= 制限なし)
Maxdetach 0 0 0 0 S ユーザ名一個あたりの最大独立プロセス数(0= 制限なし)
Maxjobs 0 0 0 0 S ユーザ名1 つあたりの最大アクティブ・プロセス数(0=制限なし)
Pgflquo 20480 ページ 32768 ページ 50000 ページレット 50000 ページレット P ページング・ ファイル制限
Prclm 10 2 10 8 P サブプロセス作成制限
TQElm 30 40 20 10 P タイマ・キュー・エントリ数
WSdef[2] 256 ページ 256 ページ 2000 ページレット 2000 ページレット N 省略時のワーキング・ セット・サイズ
WSextent[2] 40960 ページ 1024 ページ 16384 ページレット 16384 ページレット N ワーキング・セット超過制限
WSquo[2] 512 ページ 512 ページ 4000 ページレット 4000 ページレット N ワーキング・セット・ クォータ

[1] D=差し引き型,N=非差し引き型,P=プール型,S=システム単位型

[2]この制限は,AUTORIZEに指定されたそのアカウントの値と,システム・ パラメータPQL_MWSDEF,PQL_MWSEXTENT,PQL_MWSQUOの値のどちらか大きい方の値をLOGINOUT は使用する。

表 6-9は,SYSTEMおよびDEFAULTアカウントの名前と説明です。 その値は,表 6-8にリストされています。/EXPIRATION 修飾子についても,表 6-9で説明しています。

表 6-9 SYSTEMおよびDEFAULTアカウントの説明

アカウント 説明
ASTキュー制限(ASTlm) 次の合計を制限する。

  • ユーザのプロセスが一度に持つことが可能な,未解決の非同期システム・ トラップ(AST)要求の個数

  • ユーザのプロセスが一度に持つことが可能な,未解決のスケジュール済みウェイクアップ要求の個数

この制限は,引数としてASTアドレスを取るすべてのシステム・サービスとスケジュール・ ウェイクアップ・($SCHDWK)システム・サービスに影響する。

書き込み延期オプション(DFW)が有効な場合,ファイル1つあたりに使用されるAST 数は,1にレコード・ストリーム数とマルチバッファ数を加えた値になる。 それ以外の場合は,1にレコード・ストリーム数を加えた値である。

入出力バッファリング回数制限(BIOlm) ユーザのプロセスに許される未解決の入出力バッファリング回数を制限する。

入出力バッファリングでは,プロセス指定のバッファではなく,システム・ プールの中間バッファからデータ転送が行われる。ユーザのプロセスおけるバッファリング処理とは, ターミナル入出力やファイル・システムとネットワーク入出力, カード・リーダ入力,スプールなしプリンタ出力などの処理である。 入出力のバッファリング中,プロセス指定のバッファを保持するメモリ・ ページをロックする必要はない。

入出力バイト数制限(Bytlm) ユーザのプロセスが使用可能なバッファ空間量を制限する。

このバッファ空間は,入出力バッファリングと一時メールボックスの作成に使用される。BYTLM はまた,セグメント化ウィンドウ(またはカテドラル・ ウィンドウ)としてユーザが作成可能なマッピング・ウィンドウ数も制限する。 カテドラル・ウィンドウは特に,大きなファイルを読み取るときに生じるオーバヘッドを抑える上で役立つ。

CPU時間制限(CPU) ユーザのプロセスが1 セッションあたりに使用可能なCPU時間の長さを制限する。

時間の指定は,hh:mm:ss.ccの短縮デルタ形式で行う。

CPUは,差し引き可能な制限値で,通常の推奨値は0 (制限なし)である。 しかし,この値が適用されるのは,ユーザ・プロセスのインスタンスだけか, その他のインスタンスである。CPUTIMEが複数のセッションや複数のバッチ・ ジョブにまたがって累積されることはない。

直接入出力回数制限(DIOlm) ユーザのプロセスに許される未解決の直接入出力回数を制限する。

直接入出力処理では,プロセス指定のバッファから直接データ転送が行われる。 一般的に,ユーザのプロセスおける直接入出力処理とは,ディスクやテープに対する入出力処理である。 直接入出力中,オペレーティング・ システムは,プロセス指定のバッファを保持するメモリ・ページをロックする。

DIOlmは差し引き不可制限である。

キュー登録クォータ(Enqlm) プロセスとそのサブプロセスが所有可能なロック数を制限する。OpenVMS レコード管理サービス(RMS)は,クォータ・ ロック管理機能を使って,共用ファイル・アクセス,グローバル・ バッファ,レコード・ロックの同期を取る。RMSは共用ファイル,ローカル・ バッファ,グローバル・バッファ・セクション,そして未解決の各レコード・ ロックについてロックを1つ削除するので,大量のRMSファイル共用を行うことが予測されるユーザは,Enqlm に大きな値を設定する必要がある。

キュー登録クォータに十分な値を設定せずにプロセスが大規模な RMS ファイル共用を行うと,SS$_EXENQLMエラー・メッセージが出されることがある。 また,システムが大規模な RMSファイル共用を行っていて,LOCKIDTBL システム・パラメータの値が小さすぎる場合には,SS$_ NOLOCKIDエラー・メッセージが出されることがある。LOCKIDTBL値を大きくした場合は,RESHASHTBL システム・パラメータ値も大きくする必要がある。 詳細は『OpenVMSシステム管理ユーティリティ・ リファレンス・マニュアル』を参照。

共用ファイルの場合,Enqlm値は1ファイル,1プロセスあたりのロック数に共用ファイルとしてオープンするファイル数をかけた値である。

  • 省略時のマルチバッファ数を使用する場合は,ロック数を,索引順編成ファイルであれば4 ,相対ファイルであれば3と見積もる。

  • マルチバッファ数に省略時の値以外の値を使用する場合は,1 ファイル,1プロセス毎のロック数を1として,それにマルチバッファ数とロック・ レコード数(通常は1)を加えた値を,1ファイル,1プロセスあたりのロック数とする。

バージョン7.1より前のOpenVMSでは,Enqlmの制限値は32767であった。 Enqlmを以前の最大値であるこの値に設定すると,内部では,Enqlmの値は自動的にアーキテクチャ上の最大値に合わせられる。 その結果として,実際上, プロセスのキュー登録クォータは無制限となるが,特権によってクォータが無視されるようにする必要はない。

省略時のマルチバッファ数は,DCLのSHOW RMS_DEFAULTコマンドを使って確認することができる。

Enqlmはプール型制限である。

満了日時(EXPIRATION) 満了修飾子は,アカウントの満了日と満了時間を指定する。 /NOEXPIRATION修飾子は,アカウントの満了日を削除したり,アカウントの満了時間を再設定したりする。/EXPIRATION 修飾子は,パスワードの満了には影響しない。
オープン・ファイル制限(Fillm) ユーザのプロセスが一度にオープンすることが可能なファイル数を制限する。 この制限には,同時にアクティブにすることが可能なネットワーク論理リンク数も含まれる。

Fillmはプール型制限である。オープンしているファイルごとに少なくとも96 バイトのBytlmが必要になる。

ジョブ・ テーブル・クォータ(JTquota) ジョブ全体の論理名テーブルを作成するときに適用する初期バイト・ クォータを指定する。

JTquotaはプール型制限である。

最大アカウント・ ジョブ制限(Maxacctjobs) 1つのアカウントのユーザ全員の間で一度にアクティブにすることが可能なバッチと会話, 独立プロセスの最大数を指定する。

Maxacctjobsはシステム単位の制限である。

最大独立プロセス制限(Maxdetach) 名前の挙げられたユーザ名を持つ独立プロセスの,1 度にアクティブにできる最大数を指定する。MAXDETACH は,ユーザが持つことのできる仮想ターミナルを制御するためにも使用できる。 ユーザに独立プロセスを作成させないためには, キーワードNONEを指定する。省略時には,ユーザには0の値が指定されており, これは独立プロセス数が制限されていないことを示す。

Maxdetachはシステム単位の制限である。

最大プロセス・ ジョブ制限(Maxjobs) 名前の挙げられたユーザが1 度にアクティブにすることができる会話型,バッチ,独立プロセスの最大数を指定する。

Maxjobsはシステム単位の制限である。

ファイル・ ページング制限(Pgflquo) ユーザのプロセスがシステム・ ページング・ファイルで使用可能なページ数を制限します。 ページング・ファイルとは,メモリ管理によってメモリから強制的に出されたページに一時的なディスク空間を提供するファイルです。Pgflquo は,仮想アドレス空間作成($CRETVA)またはプログラムまたは制御領域拡張($EXPREG) システム・サービスを使って作成可能な仮想アドレス空間を総量規制します。

Pgflquoはプール型制限です。

サブプロセス作成制限(Prclm) ユーザのプロセスが作成可能なサブプロセス数を制限する。

システムにログインしたときに作成されるプロセスはサブプロセスを作成することができる。 そうしたすべてのサブプロセスはそれを作成したプロセスのユーザの所有であり, 初期プロセスに割り当てられた資源を共用する。

Prclmはプール型制限である。

タイマ・キュー・ エントリ制限(TQElm) 次の合計を制限する。

  • ユーザのプロセスがタイマ・キューに登録可能なエントリ数

  • ユーザのプロセスが持つことが可能な一時共通イベント・フラグ・ クラスタ数

パーマネント・イベント・フラグ・クラスの作成が,この制限の影響を受けることはない。

タイマ・キュー・エントリは時間依存型のスケジューリングで使用され, 共通イベント・フラグは協同動作するプロセスのグループ間の処理の同期に使用される。

TQElmはプール型制限である。

省略時のワーキング・ セット・サイズ(WSdef) ユーザのプロセスに対する初期ワーキング・ セットの大きさを制限する。

WSdefは差し引き不可制限である。指定値がWSQUO値を超えている場合は, WSQUO値の方が使用される。

ワーキング・セット超過制限(WSextent) ユーザが使用する物理メモリが増えたときに, システムの負荷に関係なくユーザが使用可能な最大メモリ量を指定する。 こうした物理メモリの拡大は,ワーキング・セット制限調整($ADJWSL) システム・サービスで行うが,通常は,ページ・フォルトが頻発したときに, オペレーティング・システムによって自動的に行われる。

WSextentは差し引き不可制限である。この制限値は,WSQUO値以上であることが必要。 またこの値は,システム・パラメータWSMAXによって左右される。PQL_MWSEXTENT がWSextentより大きい場合には,PQL_MWSEXTENTがWSextent のアカウント値を上書きすることに注意。

ワーキング・セット・クォータ(WSQUO) ワーキング・ セットのクォータを指定する。これは,ユーザ・プロセスがワーキング・ セットにロックすることが可能な最大物理メモリ量である。またこのクォータは, システムがプロセスに確保可能な最大スワップ空間量と, システム単位のメモリ要求が重要になったときにプロセスが消費可能な最大物理メモリ量も表す。 このパラメータにより,ユーザには決まったページ数の物理メモリが保証される。WSQUO の最大値は64Kページである。

WSQUOは差し引き不可制限である。この制限値は,WSdef値以上であることが必要。 またこの値は,システム・パラメータWSMAXによって左右される。


[ 前のページ ] [ 次のページ ] [ 目次 ] [ 索引 ] [ DOC Home ]