|
≫ |
|
|
|
この章では,システムのユーザにアクセス権を付与する方法について説明します。
具体的には,ユーザ・アカウントを追加,保守する方法を説明します。
また,システム管理者がシステムのユーザに付与可能な特権,
および割り当て可能な資源について説明します。
またこの章では,OpenVMS のメール・ユーティリティ (MAIL) のシステム管理機能についても説明します。
この章の内容この章では,次の作業について説明します。
さらに,次の項目について説明します。
システムの利用者登録ファイル (UAF) SYS$SYSTEM:SYSUAF.DAT にはユーザ・アカウント・レコードが含まれています。
各レコードは,アカウントのユーザ名とログイン特性,ログイン制約事項,
資源制御属性に関する情報フィールドから構成されます。
このうちアカウントのユーザ名は AUTHORIZE コマンドのパラメータとして使用し,
その他のフィールドは AUTHORIZE コマンドの修飾子として使用します。
システムは UAF (利用者登録ファイル) に基づいてログイン要求の有効性をチェックし,ログインに成功したユーザのためにプロセスを設定します。
AUTHORIZE ユーティリティを使用した UAF レコードの作成,検査,および変更は,システム管理者が行います。
UAF レコードには,次の資源制御属性を設定することができます。
次の節では,これらの資源制御属性について簡単に説明します。
7.1.1 優先順位 | |
ユーザの優先順位とは,ユーザのアカウントに関連するプロセスに対するコンピュータ時間をシステムがスケジューリングするときに使用される 基本優先順位です。
VAX システムの場合,優先順位は最も低い値で 0,最も高い値で 31 です。
0 から 15 はタイムシェアリング優先順位,16 から 31 はリアルタイム優先順位になります。
Alpha システムおよび I64 システムの場合,優先順位は最も低い値で 0,最も高い値で 63 です。
0 から 15 はタイムシェアリング優先順位,16 から 63 はリアルタイム優先順位になります。
システムは,厳密に基本優先順位に従って,リアルタイム優先順位でプロセスをスケジューリングします。
すなわち,最初に実行されるのは,
最も高い基本優先順位を持つ実行形式のリアルタイム・プロセスです。
タイムシェアリング優先順位を持つプロセスは,すべてのユーザが公平なサービスが受けられるよう,これとは少し異なる原理に従ってスケジューリングされます。
タイムシェアリング・アカウントに対する基本優先順位は,省略時の設定である,4 のままにしておいてください。
7.1.2 制限とクォータ | |
制限とは,再利用できるシステム資源に設定するものです。
たとえば,
あるプロセスが入出力要求のために使用できるメモリの総量などが制限です。
ほとんどの制限は,物理メモリの使用を制約するものです。
また,適切な UAF フィールドを使って,アカウントでプロセスを制限することもできます。
一度設定した制限は,DCL コマンドを使用して,
またはプログラムからシステム・サービスを呼び出して,変更することができます。
プロセスは,そのサブプロセスに自分の資源を渡します。
たとえば,SPAWN コマンド使うと,サブプロセスを作成することができます。
資源をサブプロセスに渡す方法はいくつかありますが,
資源のタイプによって異なります。
資源のタイプを表 7-1 「資源タイプによる制限」 に示します。
表 7-1 資源タイプによる制限 資源タイプ
| 制限の説明 |
---|
プール型 | 親プロセスおよびそのサブプロセスは,先入れ先出し法で,
制限に達するまで資源を共用する。 |
非差し引き型 | サブプロセスは,親プロセスと同じ資源上の制限を受ける。
親プロセスの制限に影響はない。 |
差し引き型 | サブプロセスは,親プロセスの資源の一部を受ける。
その部分は,親プロセスの制限から差し引かれる。 |
システム単位型 | 親プロセスと,同じユーザ名または同じアカウントで作成されたすべてのサブプロセスは,先入れ先出し法で,すべての制限を共用する。 |
通常,使用制限は省略時の値のままにしておきます。
システム・アカウントとユーザ・アカウントの省略時の使用制限量については,OpenVMS ディストリビューション・キットの AUTHORIZE ユーティリティに用意されているサンプル版の SYSTEM および DEFAULT 利用者登録ファイルのレコードを参照してください。
制限とクォータについては,
7.7 項 「システム資源の管理」 で詳しく説明します。
7.1.3 特権 | |
特権は,ユーザがどの機能をシステムで実行できるかを決定するものです。
システム管理の機能を使用するためには,通常のユーザが持っていない特権が必要です。
SYSTEM アカウントは省略時の設定ですべての特権を持つので,SYSTEM アカウントを使用するときは注意してください。
たとえば SYSTEM アカウントにログインすると,保護の設定に関係なく,
任意のファイルを変更したり,削除したりすることができます。
表 7-2 「システムの特権」 にシステムの特権を分類し,
各特権についての簡単な説明を示します。
特権についての詳細は,
『OpenVMS システム・セキュリティ・ガイド』を参照してください。
表 7-2 システムの特権 分類 | 特権 | 可能な操作 |
---|
なし | なし | 特権を必要としない操作 |
通常 | NETMBX | ネットワーク接続の確立 |
| TPMBX | 一時メールボックスの作成 |
グループ | Group | 同じグループのプロセスの制御 |
| GRPPRV | システム保護フィールドによるグループ・アクセス |
ディバウ | ACNT | アカウントの使用停止 |
| ALLSPOOL | スプール・デバイスの割り当て |
| BUGCHK | マシン・チェック・エラー・ログ・エントリの作成 |
| EXQUOTA | ディスク・クォータの無視 |
| GRPNAM | 名前テーブルへのグループ論理名の登録 |
| PRMCEB | パーマネント・コモン・イベント・フラグ・クラスタの作成または削除 |
| PRMGBL | パーマネント・グローバル・セクションの作成または削除 |
| PRMMBX | パーマネント・メールボックスの作成 |
| SHMEM | 共用メモリにおける構造の作成または削除 |
システム | ALTPRI | 割り当てより高い基本優先順位の設定 |
| AUDIT | 監査レコードの生成 |
| OPER | オペレータ機能の実行 |
| PSWAPM | プロセス・スワップ・モードの変更 |
| SECURITY | プロセスの制御 |
| SYSLCK | 機密保護関連機能の実行 |
| WORLD | システム全体の資源のロック |
オブジェクト | DIAGNOSE | デバイスの診断 |
| IMPORT | ラベルなしテープ・ボリュームのマウント |
| MOUNT | マウント・ボリューム QIO の実行 |
| SYSGBL | システム単位のグローバル・セクションの作成 |
| VOLPRO | ボリューム保護の書き換え |
| READALL | 既存の制約を迂回するオブジェクトの読み込み |
すべて | BYPASS | 保護の無視 |
| CMEXEC | エグゼクティブ・モードへの移行 |
| CMKRNL | カーネル・モードへの移行 |
| DETACH | 任意の UIC の独立プロセスの作成 |
| DOWNGRADE | 機密度の低いオブジェクトへの書き込みまたはオブジェクトの分類レベルの引下げ |
| LOG_IO | 論理入出力要求の発行 |
| PFNMAP | 特定の物理ページへのマッピング |
| PHY_IO | 物理入出力要求の発行 |
| READALL | すべてのシステム・オブジェクトに対する読み込み権の取得 |
| SETPRV | 特権の使用許可 |
| SHARE | 他のユーザに割り当てられているデバイスへのアクセス |
| SYSNAM | 名前テーブルへのシステム論理名の追加 |
| SYSPRV | システム保護フィールドによるオブジェクトへのアクセス |
| UPGRADE | 統合性の高いオブジェクトへの書き込みまたはオブジェクトの統合レベルの引上げ |
SET.EXE などのいくつかのイメージは,システム UAF に対するアクセス権を必要とし,通常 SYSPRV 特権でインストールされますから,
システム管理者は必ず SYSUAF.DAT に対するアクセス権をシステムに付与してください。
7.1.4 登録ファイルの保護 | |
ファイルの保護コードを表示するには,DCL コマンドの DIRECTORY/PROTECTION を使用してください。
登録ファイルは次の省略時の保護で作成されます。
-
利用者登録ファイル SYSUAF.DAT
利用者登録ファイル SYSUAF.DAT は次の省略時の保護で作成される。
SYSUAF.DAT S:RWED, O:RWED, G, W
|
-
代理登録ファイル NETPROXY.DAT および NET$PROXY.DAT
2 つの代理登録ファイル NETPROXY.DAT
および NET$PROXY.DAT が次の省略時の保護で作成される。
NETPROXY.DAT S:RWED, O:RWED, G, W
NET$PROXY.DAT S, O, G, W
|
システムが使用する優先代理登録データベースは NET$PROXY.DAT ファイルである。
NETPROXY.DAT は維持される。
ネットワーク代理アカウントについての詳細は,
7.5.3 項 「ネットワーク代理アカウント」を参照。
-
ライト・データベース・ファイル RIGHTSLIST.DAT
RIGHTSLIST.DAT 登録ファイルは次の省略時の保護で作成される。
RIGHTSLIST.DAT S:RWED, O:RWED, G, W
|
ユーザ・アカウントの追加プロシージャについての詳細は,
7.2 項 「ユーザ・アカウントの追加」 を参照してください。
UAF は,ユーザ・アカウントの情報を格納する1次登録ファイルなので,
アカウントを追加する前にその内容を理解しておくことが大切です。
7.1.5 UAF のログイン検査 | |
この節ではまず,
ユーザからログインが試みられたときにシステムがどのように UAF のログイン・フィールドを調べるかについて説明します。
ターミナルを起動します。
システムに直接接続されていれば,電源を入れて Return を入力するだけです。
接続されていなければ,システムにダイアルインして,
遠隔接続プロトコルを監視します。
または,LAT 経由で接続します。
そのとき,そのターミナルがユーザのプロセスに割り当てられていなければ,
システムはユーザ名とパスワードの入力を求めます。
ユーザは,UAF レコードに存在する,
ユーザ名とパスワードの組み合わせを入力する必要があります。
正しくユーザ名とパスワードを入力しないと,
それ以上アクセスができなくなります。
ユーザ名とパスワードが認められると,システムは 表 7-3 「システムのログイン処理手順」 の操作を行います。
表 7-3 システムのログイン処理手順 手順 | 処理 | 結果 |
---|
1. | ログイン・フラグの検査 | システムは DISUSER から検査を開始する。
DISUSER フラグがセットされている場合,ログインは許可されない。 サポート・アカウントのような,
めったに使われない強力なアカウントにこのフラグをセットすると,
パスワードが推測される危険性がなくなる。 |
2. | 主曜日および副曜日制約に関する検査 | システムは,時刻別ログイン制約が有効かどうか決定する。
時刻別ログイン制約は,/ACCESS, /DIALUP, /INTERACTIVE, /LOCAL,
/REMOTE 修飾子によって定義される。
現在の時刻が制限されていれば,ログインは失敗する。
アクセスの時間や曜日によって,
SYSTEM アカウントの非バッチ・アクセスを制限することを推奨する。
7.4.1 項 「曜日タイプの設定」 および 7.4.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 ディクショナリ』を参照してください。
7.1.6 システム提供 UAF アカウントの管理 | |
一般的に,UAF はディストリビューション・キットに用意されているものを使用します。
ただし,DCL の RENAME コマンドで UAF をリネームし,AUTHORIZE で新しい UAF を作成することができます。
このファイルへのアクセスは,
SYSTEM 特権を持ったアカウントからしか行えないようにしてください。
システム・ファイルを保護するときのガイドラインについては,
『OpenVMS システム管理 ユーティリティ・リファレンス・マニュアル』に詳しい説明があります。
UAF は共用ファイルとしてアクセスされ,UAF への更新はレコード単位で行われます。
このため,AUTHORIZE セッションを行うたびに,一時 UAF と新しいバージョンの UAF の両方を更新する必要はありません。
更新内容は,AUTHORIZE が終了した後ではなく,AUTHORIZE コマンドが入力されるとすぐに有効になります。
したがって,後で変更すればよいと考えて,暫定的な値を入力しないでください。
AUTHORIZE ユーティリティは,UAF レコードのフィールドに値を入力するためのコマンドや修飾子を提供します。
UAF レコードのフィールドと,
フィールドに属性を設定するためのコマンドおよび修飾子についての詳細は,
『OpenVMS システム管理 ユーティリティ・リファレンス・マニュアル』を参照してください。
VAX システムの場合,ソフトウェア・ディストリビューション・キットには,
DEFAULT,FIELD,SYSTEM,SYSTEST,および SYSTEST_CLIG の 5 つのアカウントが含まれています。
Alpha システムおよび I64 システムの場合,DEFAULT および SYSTEM アカウントが作成されます。
SYS$MANAGER:CREATE_SPECIAL_ACCOUNTS.COM を使用して,
7.1.6.2 項 「Alpha システムおよび I64 システム上でのアカウントの作成」 で説明している,SYSTEST,SYSTEST_CLIG,
およびFIELDのアカウントを作成できます。
表 7-4 「システム提供 UAF アカウント」 はシステム提供 UAF アカウントの説明です。
表 7-4 システム提供 UAF アカウント UAF レコード | 説明 |
---|
DEFAULT |
UAF に新規ユーザ・アカウントを作成するときのテンプレートとして使用することができる。
明示的に書き換えないかぎり,新しいユーザ・アカウントには DEFAULT アカウントの値がそのまま設定される。
このため,新しいアカウントの追加では,変更したいフィールドに新しい値を指定すればよいだけである。
DEFAULT アカウントは,UAF から名前を変更したり削除したりできない。 次の AUTHORIZE コマンドは DEFAULT アカウントと同じ値を持つ新しいアカウントを作成する。
ただし,パスワード,UIC,および省略時ディレクトリのフィールドは異なる。
UAF> ADD MARCONI/PASSWORD=QLP6YT9A/UIC=[033,004]/DIRECTORY=[MARCONI]
|
7.2 項 「ユーザ・アカウントの追加」 では,AUTHORIZE を使用したユーザ・アカウントの追加例を紹介する。
新しい省略時のテンプレートの作成および使用方法については,7.3.4 項 「ユーザ環境の保守」を参照。 |
FIELD |
弊社のサポート担当者が新しいシステムをテストするときに使用するレコード。 VAX システムの場合,省略時のサポート・アカウントのユーザ名は FIELD。 Alpha システムおよび I64 システムの場合,ユーザがサポート・アカウント名を付ける (Mary_Smith,John_Jones など)。 |
SYSTEM |
完全な特権でログインする。
システム管理者のアカウント用レコード。
このレコードは変更することができるが,リネームしたり,UAF から削除してはならない。
SYSTEM アカウントからアップグレードを実行するとき,SYSTEM アカウント上で実行した時間または日制約に注意すること。 |
SYSTEST |
スタンドアロン・システムで UETP (ユーザ環境テスト・パッケージ) の実行に合わせた環境を実現する (『OpenVMS システム管理者マニュアル (下巻)』参照)。 |
SYSTEST_CLIG |
OpenVMS Cluster 環境内での UETP の実行に合わせた環境を実現する。
SYSTEST_CLIG アカウントにはパスワードはない (『OpenVMS システム管理者マニュアル (下巻)』参照)。 |
7.1.6.2 Alpha システムおよび I64 システム上でのアカウントの作成
Alpha システムおよび I64 システムの場合,
SYS$MANAGER:CREATE_SPECIAL_ACCOUNTS.COM コマンド・プロシージャを使用して,
SYSTEST,SYSTEST_CLIG,および複数サポート担当者のアカウントを作成できます。
7.1.6.2.1 サポート担当者アカウントの作成 (Alpha および I64)
Alpha システムおよび I64 システムの場合,
CREATE_SPECIAL_ACCOUNTS.COM コマンド・プロシージャを使用して,
サポート担当者のアカウントを作成できます。
アカウント作成時には次のガイドラインに従ってください。
-
すべてのサポート担当者に対して1つの FILED アカウントを作成するのではなく,各担当者ごとにアカウントを作成する。
コマンド・プロシージャは,各アカウントの作成ごとに使用する必要がある。
-
サポート担当者の実際の名前をアカウント名に使用すること。
FIELD などの汎用名は使用しないこと。
サポート担当者のアカウントの作成に使用する 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:
* Re-enter for verification:
$
|
システムはユーザが入力したパスワードやパスワードの確認を表示しません。
サポート担当者アカウントの使用停止 (Alpha および I64)AUTHORIZE ユーティリティを使用して,
使用されていない場合はサポート担当者のアカウントを使用停止にし,
必要になったら使用可能にすることができます。
アカウントを使用停止にするには,AUTHORIZE コマンドを次の形式で使用してください。
MODIFY ユーザ名/FLAGS=DISUSER 例を示します。
$ RUN SYS$SYSTEM:AUTHORIZE
UAF> MODIFY JOHN_JONES/FLAGS=DISUSER
|
ログイン・フラグ DISUSER は,アカウントを使用停止にして誰もそのアカウントにログインできないようにします。
サポート担当者アカウントの再使用開始 (Alpha および I64)必要時に再びアカウントを使用可能にするには,
AUTHORIZE を次の形式で入力します。
MODIFY ユーザ名 /FLAGS=NODISUSER
例を示します。
UAF> MODIFY JOHN_JONES/FLAGS=NODISUSER
|
7.1.6.2.2 SYSTEST および SYSTEST_CLIG アカウントの作成 (Alpha および I64)
次に,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 および I64)CREATE_SPECIAL_ACCOUNTS.COM を使用して SYSTEST_CLIG アカウントを作成しても,このアカウントは使用停止になっています。
使用可能にするには,次のように/FLAGS=NODISUSER コマンドを使用してください。
UAF> MODIFY SYSTEST_CLIG/FLAGS=NODISUSER
|
SYSTEST_CLIG アカウントの使用停止 (Alpha および I64)SYSTEST_CLIG アカウントを再び使用停止にするには,/FLAGS=DISUSER コマンドを使用してください。
UAF> MODIFY SYSTEST_CLIG/FLAGS=DISUSER
|
7.1.6.3 システム提供アカウントの保守 (VAX のみ)
VAX システムをインストールしたら直ちに UAF で次の変更を行ってください。
-
FIELD および SYSTEST アカウントを使用停止にする。
めったに使用しないアカウントも使用停止にする。
アカウントを使用停止にするには,
AUTHORIZE コマンドを次の形式で使用する。
MODIFY ユーザ名/FLAGS=DISUSER
例:
$ RUN SYS$SYSTEM:AUTHORIZE
UAF> MODIFY WOLF/FLAGS=DISUSER
|
ログイン・フラグ DISUSER は,アカウントを使用停止にして誰もそのアカウントにログインできないようする。
必要時にアカウントを使用可能にするには,AUTHORIZE を実行し,
コマンドを次の形式で入力する。
MODIFY ユーザ名 /FLAGS=NODISUSER
-
DEFAULT アカウントのフィールドを変更する(省略可能)。
例:
UAF> MODIFY DEFAULT/DEVICE=DISK$USER/WSQUO=750
|
この例では,省略時のデバイス名はユーザ・アカウントで一般的に使用される名前に設定されている。
ワーキング・セット値もシステムの大半のユーザに合った値に設定されている。
SYSTEM アカウントはバックアップの実行や保守アップデートのインストールなどのシステム機能だけで使用してください。
SYSTEM アカウントは省略時の設定ですべての特権を持っていますから,
このアカウント使用するときは十分注意してください。
たとえば,BYPASS 特権を持っているので,
その保護設定内容に関らずどのファイルでも削除できます。
ファイル名やアスタリスクを間違って入力してしまうと,
必要なファイルを破壊してしまう可能性があります。
日常のシステム管理作業には SYSTEM アカウントよりも特権の少ないアカウントを使用してください。
日常のシステム管理作業に SYSTEM アカウントを使用しない場合でも,
SYSTEM アカウントからメールを受信できるように設定できます。
これには,SYSTEM アカウントにログインして MAIL を起動し,
SET FORWARD コマンドを次の形式で使用して,
メールを別のアカウントに転送します。
例を示します。
$ MAIL
MAIL> SET FORWARD WINSTON::WOLF
MAIL> EXIT
|
7.1.6.5 AUTHORIZE ユーティリティによる UAF レコードの保守
UAF アカウントを作成したり,各アカウント・レコードの フィールドに値を設定または保守するときは,AUTHORIZE ユーティリティを使用します。
次のことを設定できます。
作業方法-
省略時の値を SYSUAF.DAT ファイルを含んでいるディレクトリに設定する。
通常は SYS$SYSTEM。
-
AUTHORIZE ユーティリティを実行して,特定のユーザ・レコードに対するアクセス権を取得する。
-
SHOW コマンドを入力して,ユーザ・レコードを表示する (SHOW コマンドについては,例を参照)。
-
ADD や MODIFY などの AUTHORIZE コマンドを使用して,UAF レコードのフィールドを作成または変更する。
UAF レコードの資源制御フィールドと特権フィールドに設定可能な特権,
制限,およびクォータについては,
7.7 項 「システム資源の管理」 を参照してください。
例
$ 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-2000 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 | 省略時のフィールド:
次の省略時の値を保持する。
-
コマンド言語インタプリタ (CLI) 名。
省略時の設定では,DCL (Digital Command Language)。
-
ログイン時に自動的に実行するコマンド・プロシージャ名。
空白の場合,システムは省略時の設定で CLI (DCL) を使用し,
SYS$LOGIN:LOGIN.COM を実行する。
-
コマンド言語インタプリタ・テーブル。
空白の場合は,CLI フィールドと同じ。
-
ファイル・アクセス時の省略時のデバイス名とディレクトリ名。
|
3 | ログイン特性フィールド:
次のログイン制約を課す。
|
4 | 資源制御フィールド:
システム資源使用を制御する。
-
物理メモリや CPU 時間などのシステム資源の使用を制限する。
-
システムがユーザに代わって作成したプロセスをスケジューリングするときに使用される基本優先順位を指定する。
|
5 | 特権フィールド:
制約付きで機密保護を要するシステム機能の使用を許可する特権を指定する。
|
6 | 識別フィールド:
ユーザが保持し,かつライト・データベース・ファイルに記録されている ACL 識別子の一覧。
|
7 | 属性フィールド:
ライト・データベースに識別子を登録したり,ユーザに識別子を与えたりするときに指定する特性の一覧。
|
7.1.7 ユーザ・アカウントの追加にあたっての準備 | |
この節では,ユーザ・アカウントを追加する前に行っておく必要のある事項について説明します。
ユーザ・アカウントをどのように設定するかは,個々のユーザの必要に応じて異なります。
表 7-5 「アカウント・タイプ」 に,アカウントのタイプと特性をまとめます。
表 7-5 アカウント・タイプ アカウント | 説明 |
---|
会話型 | システム・ソフトウェアに対するアクセス権を持つアカウント。
プログラム開発やテキスト編集などの一般的な作業は,このアカウントで行う。
通常,そうしたアカウントは個人アカウントと見なされる。 |
制約付きアクセス | システムに対するログインの制限を受け,
場合によっては,ユーザ・ソフトウェアの一部しか使用することができないアカウント。
このアカウントでは,
システム・ログイン・コマンド・プロシージャ (SYLOGIN.COM) やプロセス・ログイン・コマンド・プロシージャ(UAF の /LGICMD 修飾子で指定) ばかりでなく,
そこから呼び出されるコマンド・プロシージャの実行も保証される。
書き込みアクセス制限付きアカウント・コマンド・プロシージャについては,
『OpenVMS システム・セキュリティ・ガイド』を参照。
アクセス制限付きアカウントには次の 2 つのタイプがある。
- 制約付き
MAIL などのネットワーク・オブジェクトやネットワーク代理アカウント,さらにはスマート・カードなどのユーザ認証システムの実現に使用する。 - 機能別
機能別に制限を課すアカウント。
たとえば,システムに対するアクセスを,在庫システムなどの特定の機能を実行する人にしか許可しないときに使用する。
在庫管理の担当者はシステムにアクセスすることができるが,他のサブシステムや基本ソフトウェアへのアクセスは拒否される。
この種のアカウントのその他の用途としては,管理者不在時のバッチ処理の実行や,管理者が個人的に保管しておきたい情報を伴うアプリケーション・プログラムの実行などがある。
|
ユーザ・アカウントを追加するときは,次の手順で行います。
-
ユーザ名とパスワードを決定する。
-
UIC (利用者識別コード) を決定する。
-
アカウントのファイルを置く場所 (デバイスとディレクトリ) を決定する。
-
ディスク・クォータが設定されている場合は,SYSMAN ユーティリティを使用して,UIC に対するディスク・クォータ・エントリを追加する。
この追加は,AUTHORIZE ユーティリティでユーザのアカウントを作成した後でしか行えない。
-
次の形式の DCL コマンドを使って適当なボリュームに省略時のディレクトリを作成する。
CREATE/DIRECTORY ディレクトリ指定 /OWNER_UIC= 利用者識別コード
-
アカウントの機密保護条件,すなわち,ファイル保護,特権,
およびアクセス制御レベルを決定する。
-
ログイン・プロシージャおよびログアウト・プロシージャを作成する。
以降の項で,これらの作業について詳しく説明します。
ユーザ・アカウントを追加するにあたっての準備作業を終えたら,
7.2 項 「ユーザ・アカウントの追加」 で紹介する方法のいずれかを使ってユーザ・アカウントを追加します。
ユーザ名やパスワードを決定するときには,アカウントの性質を考えた命名規則に従ってください。
たとえば,アカウントを使用する人の名前を使用するなどです。
機能別アカウントの場合には,アカウントの機能が分かる名前を使用します。
したがって,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 システム管理 ユーティリティ・リファレンス・マニュアル』を参照してください。
7.1.7.2.2 UIC (利用者識別コード) の割り当て
各アカウントには,UIC (User Identification Code : 利用者識別コード)
を割り当てます。
UIC には,英数字からなるものと数字だけからなるものの 2 つの形式があります。
英数字からなる UIC は,メンバ名とグループ名 (オプション) から構成され,
コンマで区切られ,大括弧で囲まれています。
たとえば,
[DOCO,PRICE] のようになります。
これらの識別子を数字で表すこともできます。
この場合,メンバとグループの識別子を 8 進数で表現します。
たとえば,[11,200] のようになります。
アカウントの所有者が共同で作業していたり,頻繁に同じファイルにアクセスしたり,また同じ論理名を数多く共用したりする場合は,同じグループ番号をアカウントに割り当てます。
利用者識別コードについての詳細は『OpenVMS システム・セキュリティ・ガイド』を参照してください。
7.1.7.2.3 ディスク・クォータ・エントリの追加
ディスク・クォータは,個々のユーザが使用可能な,特定のボリュームのディスク空間量を制限します。
ディスク・ボリュームに対してディスク・クォータが設定されている場合は,SYSMAN ユーティリティの DISKQUOTA コマンドを使用して,
新しい UIC にディスク・クォータ・エントリを追加します。
-
SYSMAN を起動する。
-
管理環境としてノード LARRY を定義する。
-
UIC [014,JONES] に対する DISK$USER ボリュームのディスク・クォータ・エントリを追加する。
エントリの内容はパーマネント・クォータが 2000 ブロック,超過値が 500 ブロック。
-
ユーティリティを終了する。
例
$ 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 システム管理 ユーティリティ・リファレンス・マニュアル』を参照してください。
7.1.7.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 コマンドで指定したデバイスの名前と最上位ディレクトリを使用してください。
7.1.7.2.5 機能別アカウントに対するユーザの省略時のデバイスの設定
会話型アカウントの場合,最上位 (省略時の設定) ディレクトリを作成するかどうかは,ユーザのシステムの性質によって決まります。
ある特定のディレクトリを使用する場合は,
そのディレクトリを省略時のディレクトリにしてください。
たとえば,在庫システムが DISK$DATA:[INV]STOCK1.DAT と DISK$DATA:[INV]STOCK2.DAT というファイルを使用すると仮定します。
この場合,省略時のデバイス指定は DISK$DATA に,省略時のディレクトリ指定は [INV] にしてください。
7.1.7.3 アカウントの機密保護に関する注意事項
アカウントの機密保護をどのレベルにするかは,アカウントの目的と,
そのアカウントが複数のユーザまたはグループによって共用されるかどうかで決まります。
会話型ユーザ・アカウントの場合,通常は省略時のUIC に基づく保護で十分です。
ユーザのファイルの保護最上位ディレクトリの場合,省略時の保護は,
通常のユーザのアクセスを禁止します。
しかし,新しいユーザ・ディレクトリの省略時の保護を (w:e) にしておくと,
他のユーザがこのディレクトリのファイルにアクセスするのを許可するために,
ディレクトリの保護設定を変更する必要がありません。
DCL の SET SECURITY コマンドを使用すると,
ファイルとサブディレクトリに対し個別に高い保護を設定できます。
アクセス制御リスト (ACL) の使用法プロジェクト・アカウントなど,もっと保護レベルを高める必要がある場合は,ACL (アクセス制御リスト) を使用します。
ACL に基づく保護では,異なるグループまたは複数のグループに所属するメンバがプロジェクト・アカウントのようなアカウントに対するアクセス権を共用する場合など,より綿密なレベルの機密保護を実現することができます。
ACL は機密保護関連のオブジェクトに対するユーザのアクセスを認めたり否定したりする方法を提供します。
ACL に基づく保護機能を利用したプロジェクト・アカウントを設定する方法については,7.5.2 項 「ACL 識別子を用いたプロジェクト・アカウントの設定」 を参照してください。
ACL の設定と編集方法については,『OpenVMS システム・セキュリティ・ガイド』と『OpenVMS システム管理 ユーティリティ・リファレンス・マニュアル』を参照してください。
AUTHORIZE を使用したライト・データベースの保守ライト・データベース (RIGHTSLIST.DAT) は,システムのユーザとアクセス制御識別子とを対応させたファイルです。
ユーザからのログインがあると,システムはユーザが所有する識別子がライト・データベースに存在するか調べます。
システム管理者は AUTHORIZE ユーティリティを使って,ライト・データベースの識別子を必要に応じて追加または削除することができます。
ユーザ・グループの全員に同じ識別子を与えることによって,UIC に基づく保護によって実現されるより,もっと複雑なグループ保護手段を実現することができます。
保護されたサブシステムの使用法保護されたサブシステムにはデータへの条件付きアクセスがあります。
保護されたサブシステムでは,通常のアクセス制御によって保護されたアプリケーションは,サブシステムに属するオブジェクトに対する門番のような役割を果たします。
ユーザがそのアプリケーションを実行しているとき,
ユーザのプロセス・ライト・リストには,サブシステムが所有するプロセスへのアクセス権をユーザに与える識別子が入っています。
ユーザがそのアプリケーションを終了すると,これらの識別子と (その結果として) そのオブジェクトに対するユーザのアクセス権がただちに消滅します。
詳細は『OpenVMS システム・セキュリティ・ガイド』を参照してください。
以降の項ではユーザ・アカウントを追加する 2 つの方法を説明します。
7.2.1 AUTHORIZE ユーティリティによるユーザ・アカウントの追加 | |
ユーザ・アカウントの目的を分析し,必要になる属性と資源を決定したら,
AUTHORIZE ユーティリティを使ってアカウントを作成します。
手順は次のとおりです。
作業方法
-
次のコマンドを入力して,SYSPRV 特権を取得する。
$ SET PROCESS/PRIVILEGE=SYSPRV
|
-
次のコマンドを入力して,省略時のデバイスとディレクトリを SYS$SYSTEM に設定し,AUTHORIZE を起動する。
$ SET DEFAULT SYS$SYSTEM
$ RUN AUTHORIZE
UAF>
|
-
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 によるアカウントの設定で使用可能な修飾子の一覧を示します。
表 7-6 「AUTHORIZE で使用可能な修飾子」 は,影響を及ぼすアカウント属性別に修飾子をまとめたものです。
各修飾子についての詳細は,
7.7.2 項 「システム資源の制限の設定」 を参照してください。
すべての AUTHORIZE 修飾子の一覧については,
『OpenVMS システム管理 ユーティリティ・リファレンス・マニュアル(上巻)』を参照してください。
表 7-6 AUTHORIZE で使用可能な修飾子 制限とクォータ[1] | /ASTLM | /FILLM | /PRCLM | /BIOLM | /JTQUOTA | /TQELM | /BYTLM | /MAXACCTJOBS | /WSDEFAULT | /CPUTIME | /MAXDETACH | /WSEXTENT | /DIOLM | /MAXJOBS | /WSQUOTA | /ENQLM | /PGFLQUOTA | | 優先順位[2] | /PRIORITY | | | 特権 | /DEFPRIVILEGES | /PRIVILEGES | | ログイン・アクセス制御[3] | /ACCESS | /FLAGS[4] | /PRIMEDAYS | /DIALUP | /INTERACTIVE | /REMOTE |
/EXPIRATION | /LOCAL | |
7.2.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 と答えた場合は,アカウントが削除されます。
追加したアカウントにユーザがログインしたら,
すぐにパスワードを変更するように指示してください。
システム管理者は,アカウントの変更や削除などのユーザ・アカウントの保守作業を行う必要があります。
以降の項では保守作業の実行方法について説明します。
7.3.1 会話型アカウント用コマンド・プロシージャの使用法 | |
アカウントのタイプに関係なく,
ログイン・コマンド・プロシージャには,一般的にユーザ・セッションの開始時に実行されるコマンドが入っています。
ログイン・コマンド・プロシージャのコマンドは,次の処理を行います。
-
-
-
-
-
-
プロセスへの省略時のファイル保護の設定 (SET PROTECTION/DEFAULT)
ログイン・コマンド・プロシージャは,キー入力を減らし,操作を標準化します。
会話型アカウント用にログイン・コマンド・プロシージャを作成する場合,次の中から選択します。
例 7-1 「システム単位での SYS$MANAGER:SYLOGIN.COM ログイン・コマンド・プロシージャ例」 と 例 7-2 「ユーザ・アカウント用ログイン・コマンド・プロシージャ (LOGIN.COM) 例」 は,
典型的なシステム全体でのログイン・コマンド・プロシージャとユーザ指定ログイン・コマンド・プロシージャの例です。
例 7-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
|
例 7-1 「システム単位での SYS$MANAGER:SYLOGIN.COM ログイン・コマンド・プロシージャ例」 のように,ログイン・セッション中には,
ログイン・コマンド・プロシージャが完了するまで,Ctrl/Y 機能 (実行を中断し,制御をコマンド・インタプリタに渡す機能) を使用不可にすることが可能です。
Ctrl/Y 機能を使用不可にするためには,DCL の SET NOCONTROL=Y コマンドを使用します。
このコマンドを使用した場合は,
ログイン・コマンド・プロシージャが終了する前に Ctrl/Y 機能を再設定する DCL コマンド(SET CONTROL=Y) を,
コマンド・プロシージャに追加する必要があります。
例 7-2 「ユーザ・アカウント用ログイン・コマンド・プロシージャ (LOGIN.COM) 例」 は,ユーザがログイン・ファイルで定義できる典型的な省略形とシンボルの例です。
例 7-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
|
|
ログアウト・コマンド・プロシージャの使用法システムは,ログアウト時に自動的にコマンドを実行する機能を備えていません。
しかし,次のようにすると実行できます。
作業方法-
ユーザがログアウトするときに実行する,システム単位のログアウト・コマンド・プロシージャを作成する。
通常,ファイル名は SYS$MANAGER:SYLOGOUT.COM とする。
-
このコマンド・プロシージャが必ず実行されるように,最も使用される LOGOUT コマンドの省略形 (LO など) を SYS$MANAGER:SYLOGIN.COM に登録する。
こうすれば,ログアウト・コマンド・プロシージャが実行される。
例
$ LO*GOUT:==@SYS$MANAGER:SYLOGOUT
|
上記のように入力した後,LOGOUT コマンドの代替形 (LOGOUTNOW コマンドなど) を使用します。
LO で始まれば,どんな名前でも使用できます。
しかし,シンボルとして使用される省略形と全く同じ名前 (この場合は LO) は使用できません。
もう一度,このプロシージャを繰り返してしまうからです。
別の方法として,次のコマンドをコマンド・プロシージャの最終行の前に指定することもできます。
$ DELETE/SYMBOL/GLOBAL LOGOUT
|
この方法が使用できない場合もあるので,代用方法が数多く用意されています。
7.3.2 ユーザ・アカウントの変更 | |
AUTHORIZE ユーティリティを使って設定したユーザ・アカウントのクォータや省略時のディレクトリ,パスワード,許可されている特権などの特性を変更する場合は,MODIFY コマンドを使用します。
ただし,変更内容を有効にするためには,ユーザはいったんログアウトし,
再度ログインする必要があります。
例-
ユーザがパスワードを忘れたためにログインできない場合には,
AUTHORIZE の MODIFY/GENERATE_PASSWORD コマンドを使用して,
ユーザのパスワードを変更します。
たとえば,次のコマンドは WELCH というユーザの新しいパスワードを生成します。
UAF> MODIFY WELCH/GENERATE_PASSWORD
|
省略時の設定では,
ユーザ WELCH はログイン後にパスワードを変更する必要があります。
-
ユーザのレコードに加えた変更が有効になるのは,ユーザが次回ログインした後です。
たとえば,JONES というユーザのオープン・ファイル・クォータ (FILLM) が 20 であると仮定します。
このファイル制限を 40 に増やす場合は,AUTHORIZE ユーティリティから次のコマンドを実行します。
UAF> MODIFY JONES/FILLM=40
|
利用者登録ファイルを変更した時点でユーザ JONES がログインしていた場合,JONES のすべてのプロセスはオープン・ファイル制限数が 20 のままです。
新しい制限数の 40 が有効になるためには,利用者登録ファイルの変更後,JONES がいったんログアウトし,もう一度ログインする必要があります。
7.3.3 ユーザ・アカウントのリスト作成 | |
AUTHORIZE の LIST コマンドを使用すれば,SYSUAF.LIS という,UAF に含まれるすべてのユーザ・レコードの要約情報からなるファイルを作成することができます。
省略時の設定では,LIST コマンドは次の UAF 項目について,簡単なレポートを作成します。
UAF に含まれるのすべての情報 (パスワードは除く) からなる詳細レポートを作成したい場合は,/FULL 修飾子を使用します。
例
-
次のコマンドは,UAF の簡単なレポートを SYSUAF.LIS に書き出す。
UAF> LIST
%UAF-I-LSTMSG1, writing listing file
%UAF-I-LSTMSG2, listing file SYSUAF.LIS complete
|
/FULL修飾子を指定しても同じメッセージが表示されますが,
出力される内容は詳細レポートになります。
7.3.4 ユーザ環境の保守 | |
システムに変更を加える場合,システム管理者は次のことを行う必要があります。
-
新しいカテゴリのユーザ用のテンプレートとして使用する,省略時のレコードを作成する。
-
関係のなくなったユーザのアカウントを削除または使用不可にする。
-
特定のアカウント別にログイン制約を設けて,システムの使用を制限する。
こうした保守作業は,AUTHORIZE ユーティリティを使い,UAF のレコードを変更または削除することによって行うことができます。
新しい省略時のレコード・テンプレートの作成すべてのユーザが同じような種類の仕事をするシステム上では,新しいユーザを追加するとき,システムが提供する省略時のレコード DEFAULT をテンプレートとして使用します。
しかし,実際には,そのようなユーザもさまざまなカテゴリに別れていて,それぞれのカテゴリがある特定の仕事をしているので,一意のレコード属性が必要になってきます。
システムが提供する省略時のレコードをテンプレートとして使用して,新しいユーザ・レコードを追加するたびに膨大な変更を加えるのは大変です。
したがって,
その代わりの方法として,各ユーザ・カテゴリのテンプレートとして使用できる,新しい省略時の UAF レコードを作成できます。
新しい省略時の UAF レコードを作成するにあたっては,次のことを行う必要があります。
作業方法ユーザ・カテゴリを定義し,必要なレコード属性を作成したら,新しい省略時のレコードを定義します。
例-
次は,特殊な機能別アカウントを必要とするユーザ・カテゴリ用の省略時のレコードを作成するコマンドの例。
UAF> ADD DEFAULT2/LGICMD=ALT_COM_PROC/FLAGS=CAPTIVE -
_UAF> /DEVICE=USER3:/DIRECTORY=[PRODUCT]
|
この例では,システムに用意されている省略時のレコード DEFAULT を使用して DEFAULT2 というレコードを作成し,LGICMD,ログイン・フラグ,
省略時のデバイス,そして省略時のディレクトリ・フィールドを変更している。
この後,AUTHORIZE の COPY コマンドを使用して,DEFAULT2 と同じ属性を持つ別のレコードを作成することができる。
COPY コマンドで,指定された省略時のレコードを使用した新しい UAF レコードを作成する。
ただし,明示的に書き換えられたフィールドについては,新しい値に変更される。
-
次のコマンドは,新しいユーザ用に,省略時のレコード DEFAULT2 と同じレコードを作成する。
UAF> COPY DEFAULT2 PALOOKA/PASSWORD=W7YA84MI/UIC=[360,114]
|
この例では,DEFAULT2 をテンプレートとして,PALOOKA というユーザ用の重複レコードを作成している。
変更しているのはパスワードと UICだけである。
7.3.5 ユーザ・アカウントの削除 | |
アカウント,特に会話型アカウントと制約付きアカウントを削除するときに最も大きな問題となるのは,アカウントが使用していたファイルの削除です。
作業方法次の手順に従ってください。
-
削除するユーザのファイルを,他のアカウントの所有権に有効なファイルにコピーする。
または,削除するユーザのファイルをそのまま残しておく。
前者の場合,ファイルの所有権 UIC を新しいユーザに一致するように変更する。
後者の場合,BACKUP ユーティリティを使用して,
バックアップ用テープやディスクにファイルをセーブしておくことも可能。
-
パスワードを変更して,削除するアカウントのユーザとしてログインする。
これは,所有権が異なる他のファイルを指しているファイルを誤って削除しないようにするためである。
非特権アカウントから作業を行っている場合は,誤ってファイルを削除するという可能性がなくなる。
-
次に示す手順で,最下位から最上位に向かって,
該当アカウントのファイルとディレクトリを削除する。
-
DCL の DIRECTORY [ ディレクトリ指定...] を使って,
すべてのサブディレクトリを探し出し,内容を調べる。
このとき,ディレクトリ指定は,アカウントの省略時のディレクトリ名。
-
各サブディレクトリ内のファイルを削除し,続いてサブディレクトリを削除する。
所有者によるディレクトリ・ファイルの削除は禁止されているので,ディレクトリ・ファイルを削除する前に,保護設定を変更する。
-
アカウントの最上位ディレクトリを削除する。
次の例は,最下位ディレクトリから最上位に向って,アカウントのファイルを削除するコマンド・プロシージャの例である。
このプロシージャは特権アカウントで実行してはならない。
-
ユーザ・アカウントを終了して特権アカウントに戻る。
AUTHORIZE ユーティリティを使って,アカウントを削除する。
AUTHORIZE を使ってユーザの UAF レコードを削除する際に,
AUTHORIZE は,ライト・データベース中の識別子のホルダとしてユーザの接続も削除する。
切り離されたユーザが指定した識別子に対する唯一残っているホルダであった場合は,混乱を避けるためその識別子を削除する。
『OpenVMS システム・セキュリティ・ガイド』を参照。
-
ディスク・クォータ・ファイルにユーザのディスク・クォータ・エントリを登録している場合は,SYSMAN を使ってエントリを削除する。
-
MAIL コマンド REMOVE ユーザ名を入力して関連メール情報を削除する (『OpenVMS ユーザーズ・マニュアル』 を参照)。
例 7-3 「アカウントのファイルを削除する コマンド・プロシージャのテンプレート」 は,アカウントのファイルを削除するコマンド・プロシージャです。
例 7-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'
|
7.3.6 BACKUP によるユーザ・ファイルの削除 | |
ユーザ全員がそれぞれ一意の UIC を持つ場合は,
ユーザのファイルがディレクトリ構造全体に散らばっていても,
BACKUP ユーティリティを使用すれば特定の
ユーザのファイルを削除することができます。
詳細は『OpenVMS システム管理 ユーティリティ・リファレンス・マニュアル』の BACKUP ユーティリティの説明を参照してください。
例-
次は,BACKUP コマンドを使ってファイルを削除する例。
$ BACKUP/DELETE PUBLIC:[...]/BY_OWNER=[21,103] MTA0:PUBLICUIC.SAV
|
この BACKUP コマンドは,PUBLIC というディスク上にあって,指定されたUIC が所有するファイルだけをコピーおよび削除する。
ファイルのコピー先は,デバイス MTA0 の PUBLICUIC.SAV というセーブ・セットである。
BACKUP/DELETE はアカウントのディレクトリ・ファイル (ファイル・タイプ .DIR) は削除しない。
-
削除したファイルを回復させる場合は,
次の形式で ANALYZE/DISK_STRUCTURE コマンドを使用する。
ANALYZE/DISK_STRUCTURE/REPAIR/CONFIRM デバイス名
削除したファイルの回復方法については 9.13.3 項 「紛失ファイルの回復」,
ANALYZE/DISK_STRUCTURE ユーティリティについては,
『OpenVMS システム管理 ユーティリティ・リファレンス・マニュアル』を参照。
7.3.7 ユーザ・アカウントの使用禁止 | |
アカウントを削除せずに,使用禁止にだけする場合には,AUTHORIZE を使用してユーザ・アカウント使用禁止フラグ (/FLAGS=DISUSER) を設定します。
ただし,このコマンドを実行した時点でユーザがすでにログインしている場合には,
そのユーザがログアウトした後で,アカウントは使用禁止になります。
作業負荷スケジュールを検討してみると,ある特定の作業が特定の曜日または時刻に集中することがあります。
作業の性質によって,あるユーザのログインを制限したいことがあります。
AUTHORIZE ユーティリティを使用すれば,UAF レコードのログイン特性フィールドを調整できます。
つまり,あるユーザがログインできる曜日または時刻を制限したり,あるログイン機能を禁止したりすることが可能です。
以降の項では,次の作業を実行する方法について説明します。
アカウントの制約に使用する修飾子についての詳細は,
『OpenVMS システム管理 ユーティリティ・リファレンス・マニュアル』の AUTHORIZE ユーティリティの説明を参照してください。
7.4.1 曜日タイプの設定 | |
各曜日を主曜日または副曜日のいずれかに定義し,それらの曜日タイプにログイン制約を設定することによって,アカウントの使用を制約することができます。
たとえば,土曜と日曜を副曜日と定義し,
副曜日にログイン制約を設定した場合は,
その制約は土曜と日曜の両方に適用されます。
曜日タイプに設定可能なログイン制約は次の 2 とおりあります。
制約 | 説明 |
---|
時間制約 | 曜日の特定の時刻のみログインを許可する。 |
機能制約 | ログイン・タイプを制限する。 |
省略時のユーザ・レコードでは,月曜から金曜までの平日を主曜日,土曜と日曜の週末を副曜日と定義しています。
曜日の定義と制約の設定は,サイトによって異なります。
たとえば,平日にはシステムが大人数の会話型ユーザをサポートし,
週末はシステム資源を占有する必要がある特定の処理に使用すると仮定します。
このような場合,副曜日に制限を設けることによって,
副曜日として定義した曜日の間はユーザがシステムにアクセスしないようにすることができます。
こうした曜日タイプの定義の変更は,
AUTHORIZE の次の修飾子を使って行います。
/PRIMEDAYS=([NO]day[,...])
|
/PRIMEDAYS 修飾子には,主曜日と副曜日と定義する曜日名のリストを指定します。
ある曜日を副曜日と定義する場合は,
曜日名の前に接頭辞 NO を付けてください。
リストに指定されなかった曜日は省略時の値を取ります。
7.4.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
|
ネットワーク接続は,会話型接続やバッチ・ジョブとは異なる方法で処理されることに注意してください。
確立したネットワーク接続の切断の詳細については,使用しているネットワーク・ソフトウェアのマニュアルを参照してください。
7.4.3 CPU 時間の制約 | |
OpenVMS バージョン 7.3 以降では,SYSMAN インタフェースを使用して,
クラス・スケジューリングを実行することができます。
ユーザを スケジューリング・クラス に入れることにより,
システム上でそのユーザに割り当てる CPU 時間の量を制限できます。
それぞれのスケジューリング・クラスには,システムの全 CPU 時間から一定のパーセントが割り当てられます。
システムが実行されると,各スケジューリング・クラスのユーザには,
そのクラスに割り当てられたパーセントの CPU 実行時間が上限として課されます。
スケジューリング・クラスに対して,ウィンドフォール を有効にすると,
そのスケジューリング・クラスのユーザに対し,使用可能な CPU 時間が追加されます。
ウィンドフォールを有効にすると,CPU がアイドル状態であり,
対象のスケジューリング・クラスが割り当てられた時間を使い果たしたときに,
システムから少量の CPU 時間が与えられます。
クラス・スケジューラを起動するには,SYSMAN インタフェースを使用します。
SYSMAN を使用すると,スケジューリング・クラスの作成,削除,変更,
一時停止,再開,および表示が行えます。
表 7-7 「SYSMAN コマンド: class_schedule」 で SYSMAN コマンド class_schedule とそのサブコマンドについて説明します。
表 7-7 SYSMAN コマンド: class_schedule サブコマンド | 機能 |
---|
Add | 新規のスケジューリング・クラスを作成する。 |
Delete | スケジューリング・クラスを削除する。 |
Modify | スケジューリング・クラスの属性を変更する。 |
Show | スケジューリング・クラスの属性を表示する。 |
Suspend | スケジューリング・クラスを一時的に停止する。 |
Resume | スケジューリング・クラスを再開する |
パーマネント・クラス・スケジューラを使用すると,プロセスは,それが適切と判断された場合,プロセス作成時にスケジューリング・クラスに割り当てられます。
新規のプロセスを作成するときには,このプロセスがスケジューリング・クラスに属するかどうかを判断する必要があります。
この判断は,SYSUAF ファイルのデータに基づいて行われますが,Loginout イメージには,すでにこのプロセスについての SYSUAF ファイルの情報があるので,
プロセスがスケジューリング・クラスに属すると判断した場合,
Loginout クラスがそのプロセスをスケジューリングします。
SYSMAN コマンドの CLASS_SCHEDULE ADD を使用すると,
次のことが行えます。
-
-
アカウント名,ユーザ名,または UIC による,クラスに属するユーザの識別
-
このスケジューリング・クラスのユーザが,主曜日と副曜日にそれぞれ実行するプロセスに対して割り当てる CPU 時間のパーセントの指定,および,
CPU 時間の制約を適用する時間帯の指定
-
主曜日または副曜日としての指定,および主曜日と副曜日に対する異なる CPU 時間の制約の指定
-
CPU がアイドル状態のときに,スケジューリング・クラスに追加の SPU 時間を与えること
次に例を示します。
SYSMAN>
CLASS_SCHEDULE ADD MAINCLASS -
_SYSMAN> /ACCOUNT = (ACCTNAME1, ACCTNAME2) -
_SYSMAN> /USERNAME = HOTSHOT -
_SYSMAN> /CPU_LIMIT = (PRIMARY, 08-17=15, SECONDARY, 00-23=30) -
_SYSMAN> /WINDFALL
|
この例では,次の動作が行われます。
-
スケジューリング・クラス MAINCLASS が作成される。
-
MAINCLASS に,ACCTNAME1 と ACCTNAME2 のアカウントのユーザを追加する。
-
HOTSHOT のユーザを MAINCLASS に追加する。
-
MAINCLASS のユーザが,主曜日 (省略時には,月曜日から金曜日) の午前 8 時から午後 6 時までに実行するプロセスに,CPU 時間の 15% を割り当てる。
-
MAINCLASS のユーザが,副曜日 (省略時には,土曜日と日曜日) の終日実行するプロセスに,CPU 時間の 30% を割り当てる。
-
CPU がアイドル状態のときには,指定した曜日と時間に MAINCLASS のユーザが実行するプロセスに対し,余分の CPU 時間を与える。
/PRIMEDAYS 修飾子を使用して,
スケジューリング・クラスに割り当てられた主曜日と副曜日を変更することができます。
クラス・スケジューラで作成された CPU 時間の制約は,
システム・ユーザには適用されません (12.4.2 項 「保護コード」を参照)。
SYSMAN CLASS_SCHEDULE コマンドの詳細については,
『OpenVMS システム管理ユーティリティ・リファレンス・マニュアル (下巻) 』を参照してください。
7.4.4 ログイン機能の制約 | |
時刻別のログイン制約の他に,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]DISREPORT | ログイン情報 (前回ログイン日付とログイン失敗など) を表示する[またはしない]。 |
[NO]DISUSER | アカウントを完全に使用不可にする[またはしない]。 |
[NO]DISWELCOME | “Welcome to ... ” ログイン・メッセージの出力を禁止する [またはしない]。 |
[NO]GENPWD | 生成されたパスワードの使用を求める[または求めない]。 |
[NO]LOCKPWD | パスワードの変更を禁止する[またはしない]。 |
[NO]PWD_EXPIRED | 期限切れのマークをパスワードに付ける[または付けない]。 |
[NO]PWD2_EXPIRED | 期限切れのマークを第 2 パスワードに付ける[または付けない]。 |
[NO]RESTRICTED | ログイン時の省略時の値の変更を禁止する[またはしない]。 |
7.4.5 制約付きまたは機能別アカウント用ログイン・コマンド・プロシージャの使用法 | |
制約付きまたは機能別アカウント用のログイン・コマンド・プロシージャの定義には,AUTHORIZE の ADD,MODIFY,COPY コマンドに /LGICMD 修飾子を使用します。
制約付きまたは機能別アカウントにログインしているユーザは,/CLI,/DISK,/COMMAND,/NOCOMMAND,/TABLES のいずれかのログイン修飾子を使って,ログイン・コマンド・プロシージャを変更することはできません。
CAPTIVE と RESTRICTED フラグは以下のことを実行します。
-
Ctrl/Y(/FLAG=DISCTLY) を使用停止にする。
ただし,システム管理者がログイン・プロシージャの最後に DCL の SET CONTROL=Y コマンドを指定していれば,制限付きアカウントで Ctrl/Y を使用することができる。
-
MAIL の SPAWN コマンド,または DECTPU ユーティリティの SPAWN 組み込みプロシージャを使用停止にする。
ログインを終えた制約付きアカウントのユーザは DCL レベルで操作を行い,使用可能な任意のソフトウェアにアクセスすることができます。
システム管理者が次のことを守っている場合,機能別アカウントのユーザは,特定のアプリケーション・ソフトウェアにロックされ,
DCL レベルのアクセスは拒否されます。
-
ユーザに直接入力してもらい,それを受け付ける必要がある場合,
ユーザが入力したテキストは直接実行せず,まず入力内容をスクリーニングし,
目的の用途に対して有効な文字セットだけを特に許可する。
目的の用途に対して不適切な文字は,すべて拒否する。
次に挙げる文字セットについては,DCL コマンド・インタプリタで特別の意味を表すため,ユーザによる入力を禁止する。
-
アンパサンド (&) および二重アンパサンド (&&)
-
-
-
-
-
-
-
-
-
機能別アカウントのログイン・コマンド・プロシージャ内で DCL の READ/PROMPT コマンドを使用する (INQUIRE コマンドが使用できないため)。
-
サブプロセス制限値を 0 に設定して,アカウントからのサブプロセスの生成を禁止する。
また,/PRCLM 修飾子と SYSGEN パラメータの PQL_MPRCLM を設定する。
例たとえば,ある在庫システムに使用されている機能別アカウント用の簡単なログイン・コマンド・プロシージャが次のコマンドから構成されていると仮定します。
$ DEFINE SYS$DISK DISK$INVENT
$ RUN INVENTORY
$ LOGOUT
|
INVENTORY というアプリケーション・プログラムは,ユーザがアカウントへログインすると制御を受け取ります。
システム管理者は,AUTHORIZE の /FLAGS=CAPTIVE 修飾子を指定することによって,このアカウントの UAF レコードのログイン・フラグ・フィールドに CAPTIVE フラグを設定しておく必要があります。
AUTHORIZE による機能別アカウントの UAF レコードの作成方法については,
7.3.4 項 「ユーザ環境の保守」を参照してください。
例 7-4 「機能別アカウント用のコマンド・プロシージャの例」 は,高度の機密保護が必要な機能別アカウントのコマンド・プロシージャの例です。
ユーザが使用可能なコマンドを非常に狭い範囲に限定しています。
システム管理者は,
アカウント所有者によるログイン・コマンド・プロシージャとそのディレクトリへの書き込み権を確実に拒否する必要があります。
また,機密保護管理者は,このアカウントを作成するときに AUTHORIZE の /NOINTERACTIVE 修飾子を使用することになります。
機能別アカウントと制約付きアカウントについての詳細は,
『OpenVMS システム・セキュリティ・ガイド』を参照してください。
例 7-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
|
|
7.4.6 ユーザ・プロセスに対する優先順位の設定 | |
ユーザの優先順位は,システムがユーザに代わって作成したプロセスをスケジューリングするときに使用される基本優先順位です。
VAX システムの場合,優先順位は最も低い値で 0,最も高い値で 31 です。
0 から 15 はタイムシェアリング優先順位,16 から 31 はリアルタイム優先順位になります。
Alpha システムおよび I64 システムの場合,優先順位は最も低い値で 0,最も高い値で 63 です。
0 から 15 はタイムシェアリング優先順位,16 から 63 はリアルタイム優先順位になります。
リアルタイム優先順位のプロセスは,厳密に基本優先順位に従ってスケジューリングされます。
言い替えれば,最も高い基本優先順位を持つ実行形式のリアルタイム・プロセスが最初に実行されるということです。
タイムシェアリング優先順位のプロセスは,計算や入出力処理が重なって行われるよう,これとは少し異なる原理に従ってスケジューリングされます。
UAF のユーザ・アカウント・レコードでは,ユーザの優先順位の省略時の値は 4 です。
実用的には,最小値は 0 です。
タイムシェアリング・ユーザの優先順位は必ず省略時の設定のままにしておいてください。
システムは小さな基本優先順位の違いにも敏感に反応しますから,一部のユーザだけ優先順位を上げると,性能の整合性が取れなくなります。
システム管理者は,自動ログイン・アカウント,プロジェクト・アカウント,
代理アカウントなどの各種の特殊アカウントを設定しなければならない場合があります。
以降の項では,次の作業方法を説明します。
7.5.3 項 「ネットワーク代理アカウント」 はネットワーク代理アカウントの説明です。
7.5.1 SYSMAN による自動ログイン・アカウントの設定 | |
SYSMAN ユーティリティには,自動ログイン機能 (ALF) という機能があります。
SYSMAN ALF コマンドを使用すれば,特定のユーザ名で自動的にログインできるようにターミナルを設定することができます。
たとえば,ターミナルを INVENTORY というアカウント用に設定し,
ユーザが Returnキーを押したとき自動的に機能別アカウントにログインさせることも可能です。
自動ログイン・アカウントを設定するためには,まず前節で説明した手順で最上位の省略時のディレクトリを作成して,アカウントを追加する必要があります。
そして,次の形式で特定のターミナルまたはポートにそのアカウントを関連付けます。
ALF ADD デバイス名 ユーザ名 [/TERMINAL] [/PORT] [/PROXY] [/LOG]
自動ログイン・アカウントを保護するには,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 システム・セキュリティ・ガイド』を参照してください。
7.5.2 ACL 識別子を用いたプロジェクト・アカウントの設定 | |
この項では,ACL (アクセス制御リスト) を使用して,
プロジェクト・アカウントを設定する方法について説明します。
アクセス制御リストを使用することによって,
プロジェクト・グループのメンバが共用するファイルのアクセスを制御します。
ACL を用いたアカウントの設定についての詳細は,
『OpenVMS システム・セキュリティ・ガイド』を参照してください。
作業方法まず,このプロジェクト・アカウント用ライト・データベースに識別子を追加します。
ライト・データベースに識別子を追加するためには,
AUTHORIZE の ADD/IDENTIFIER コマンドを使用します。
次に,AUTHORIZE の GRANT/IDENTIFIER コマンドを使用して,ユーザを既存の ACL 識別子の所有者として関連付けます。
こうして,このプロジェクトの識別子を持つすべてのユーザはこのプロジェクトのディスク空間を使用できます。
また,プロジェクト識別子に Resource 属性を割り当てることによって,
個々のユーザではなく,プロジェクトにディスク空間を割り当てるように,
プロジェクト・アカウントを設定することもことができます。
例
プロジェクト・アカウントを設定する手順を次に示します。
-
プロジェクト・アカウントを共用する各メンバに対する個人ユーザ・アカウントを設定する (ユーザ・アカウントについては 7.1.7 項 「ユーザ・アカウントの追加にあたっての準備」 と 7.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
|
-
プロジェクト識別子にディスク・クォータ値を設定する。
たとえば,次のコマンド例は,SYSMAN を起動して,KITE_FLYING 識別子にディスク・クォータ値として 2,000 ブロック,超過値として 200 ブロックを割り当てている。
$ RUN SYS$SYSTEM:SYSMAN
SYSMAN> DISKQUOTA ADD KITE_FLYING/PERMQUOTA=2000/OVERDRAFT=200
SYSMAN> EXIT
|
-
プロジェクト・ディレクトリを作成する。
たとえば,次の DCL コマンド例は,[KITE_FLYING] というプロジェクト・ディレクトリを作成し,KITE_FLYING 識別子を所有者に設定している。
$ CREATE/DIRECTORY [KITE_FLYING]/BY_OWNER=[KITE_FLYING]
|
-
作成したプロジェクト・ディレクトリに,必要な 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 は,次の条件が成立するときだけ適用されます。
-
作成されたファイルが,そのファイルを作成したプロセスの利用者識別コード (UIC) によって所有されていない。
-
ファイルを作成したプロセスがシステム特権を持っていない。
Creator ACE についての詳細は,
『OpenVMS システム管理 ユーティリティ・リファレンス・マニュアル』と『OpenVMS VAX Guide to System Security』
を参照してください。
7.5.3 ネットワーク代理アカウント | |
ネットワーク代理アカウントとは,ネットワーク上の遠隔ノードのユーザが別のノードのローカル・アカウントを介してデータにアクセスすることを可能にするアカウントです。
代理アカウントは,
遠隔ノードの 1 人または複数のユーザに特定のファイルに対するアクセス権を付与したいが,私用アカウントを与える必要まではないといった場合に有効です。
通常,代理アカウントは制約付きアカウントとして設定します。
また代理アカウントの登録と制御は,
AUTHORIZE ユーティリティを使って行います。
代理アカウントを使用すれば,遠隔ノード上の 1 人または複数のユーザに対して,ローカルのシステム上の特定のアカウントからデータをアクセスする DCL コマンドの入力を許可できます。
代理アカウントは,
ローカルのシステムにログインしなくても,あるいは,アクセス制御文字列を使用しなくても,特定のローカルのデータなら遠隔ノード上のユーザでもアクセスできます。
遠隔ユーザはローカルのアカウントと同じファイル・アクセス権を持ち,
さらには,ローカル・アカウントの省略時の特権も持つと想定されます。
以降の項では,代理アカウントを設定する手順を説明します。
代理アカウントのさらに詳しい内容については,
『OpenVMS システム・セキュリティ・ガイド』を参照してください。
7.5.4 ネットワーク代理登録ファイルの作成 | |
代理アカウントは,遠隔ノードのユーザがローカル・ノードにアカウントを持っているかのように,ローカル・ノードにログインすることを可能にするアカウントです。
代理アカウントは,AUTHORIZE ユーティリティを使って作成および保守します。
AUTHORIZE ユーティリティについての詳細は,
『OpenVMS システム管理 ユーティリティ・リファレンス・マニュアル』を参照してください。
OpenVMS システムの場合,次の情報が 2 つの代理登録ファイル NETPROXY.DAT および NET$PROXY.DAT に格納されています。
-
DECnet for OpenVMS が稼働しているシステム上では,
NETPROXY.DAT と NET$PROXY.DAT の両方に,
DECnet VAX ノード名を使って格納された代理情報が含まれている。
-
DECnet-Plus が稼働しているシステム上では,次のようになる。
-
NET$PROXY.DAT には,DECnet-Plus の完全名を使って格納された代理情報が含まれる。
-
NETPROXY.DAT には,DECnet-Plus のノード同義語を使って格納された代理情報が含まれる。
ローカル・システムの SYSUAF.DATA ファイルは,代理アカウントをユーザ・アカウントに関連付ける必要があります。
したがって,UAF には,代理アカウント用に「標準アクセス」アカウントを登録しておきます。
たとえば,他のシステムのユーザからの入力を利用して,マーケティングの報告書を作成するユーザ・グループがあるとします。
そこで,REMOTE_MKT という名前で,ローカル・システムのいくつかのデータ・ファイルに対するアクセスのみ許可するアカウントを登録します。
この場合,SYSUAF.DAT の REMOTE_MKT アカウントには,
マーケティング・グループに割り当てたのと同じグループ番号と省略時の特権を割り当てます。
こうすれば,遠隔側の寄稿者はマーケティング・グループのユーザが「所有」していて,グループ・アクセスが禁止されていない任意のデータ・ファイルにアクセスすることができます。
作業方法AUTHORIZE コマンド CREATE/PROXY を使用して,次のようにネットワーク代理登録ファイルを作成および初期化します。
7.5.5 代理アカウントの追加 | |
代理アカウントは,ネットワーク代理登録ファイルにエントリを追加することによって作成します。
エントリを作成することによって,遠隔ノードのユーザはローカル・ノードのユーザと等価になります。
作業方法代理アカウントを追加するコマンド構文は次のとおりです。
ADD/PROXY ノード名::遠隔ユーザ名 ローカル・ユーザ名 /DEFAULT [,...]
遠隔ユーザには,省略時の代理アカウント 1 つと代替代理アカウント 15 個の,合計 16 個までのローカル・アカウントへのアクセスを許可することができます。
省略時の代理アカウントを指定する場合は,/DEFAULT 修飾子を使用してください。
例-
次は,ユーザ代理アカウントを追加しているコマンドの例である。
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 コマンドのアクセス制御文字列に目的の代理アカウントを指定する必要がある。
-
遠隔ユーザをユーザ名で指定できる。
ユーザ名構文を認識しない遠隔システムの場合,UIC (利用者識別コード) で指定する。
次の例は,RSTS32 という遠隔ノード上の [360,54] という利用者識別コードを持つユーザに対して,ローカル・ノード上の GENERIC アカウントへの代理アクセスを許可している。
UAF> ADD/PROXY RSTS32::[360,54] GENERIC/DEFAULT
|
-
遠隔ノード上にアカウントを持つユーザが複数いると仮定する。
彼らは,
自分たちのローカル・ファイルに対してレディ・アクセスを要求している。
この場合,システム管理者は,彼らにそれぞれアクセスを認める,
ネットワーク代理登録ファイルのレコードを作成する。
このとき,
ローカル・システムと遠隔システムでのユーザ名は同じにする必要がある。
次の形式の ADD /PROXY コマンドは,このようなレコードを追加する。
UAF> ADD/PROXY HAL::* */DEFAULT
|
このコマンドによって,HAL という遠隔ノード上のすべてのユーザが,
ユーザのローカル・システムで,遠隔と同じ名前のアカウントにアクセスできる。
同様に,1 人のユーザにのみ,このようなアクセスを許可することもできる。
UAF> ADD/PROXY HAL::BARBARA */DEFAULT
|
-
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 に追加格納している。
7.5.6 代理アカウントの削除 | |
代理アカウントを削除するには,AUTHORIZE コマンド REMOVE/PROXY を使用します。
UAF> REMOVE/PROXY RUBY::DELAPORT SYSTEM
|
このコマンドは,RUBY::DELAPORT からローカル SYSTEM アカウントへの代理アクセスを削除します。
7.5.7 代理アカウントの表示 | |
代理アカウントは,AUTHORIZE コマンド SHOW/PROXY を使用して表示できます。
このコマンドでは最高 1024 文字までを処理することができますが,
表示するのはノード名の最初の255 文字だけです。
次の例は,RUBY::DELAPORT から ローカル・アカウント DELAPORT への代理アクセスが,ネットワーク代理登録ファイルに省略時の設定として追加されていることを仮定しています。
2 番目の例では,DECnet-Plus を使用した場合の RUBY::DELAPORT と同等の内容を示しています。
例-
DECnet for OpenVMS が稼働しているシステムの場合,
システムは次のような情報を表示する。
RUBY::DELAPORT
DELAPORT (D)
|
(D) は DELAPORT が省略時の値であることを示している。
-
DECnet-Plus が稼働しているシステムの場合,システムは次のように完全名の形式で情報を表示する。
OMNI:.US.RUBY::DELAPORT
DELAPORT (D)
|
(D) は DELAPORT が省略時の値であることを示す。
SHOW/PROXY コマンドで /OLD 修飾子を使用すると,
情報を 旧フォーマットの NETPROXY.DAT データベースで表示できる。
7.5.8 代理ログインの制御 | |
代理ログイン要求が起こると,システムは必ず関連ノードの代理アクセスが有効になっているかチェックします。
省略時の設定では,すべてのノードが両方向とも有効です。
DECnet for OpenVMS が稼働しているシステムの場合,
ネットワーク制御プログラム (NCP) を使用して代理アクセスを変更または削除することができます。
NCP を使用して代理アクセスを制御する方法についての詳細は,
『DECnet for OpenVMS Networking Manual』 を参照してください。
DECnet-Plus ソフトウェアが稼働しているシステムの場合,
ネットワーク制御言語ユーティリティ (NCL) を使用して代理アクセスを変更できます。
NCL の使用方法については,
『DECnet-Plus Network Control Language Reference』 を参照してください。
ユーザ・アカウントの管理では,ユーザのメール・アカウントを管理する必要もあります。
たとえば,次のような管理作業があります。
-
ユーザの MAIL プロファイルの変更。
たとえば,ユーザ名を変更したり,アカウントの省略時のプリント・キューを指定したりする。
-
-
-
ユーザの MAIL 環境のカスタマイズ。
ユーザの UAF レコードにフラグを設定してカスタマイズする。
以降の項で上記の作業方法を説明します。
7.6.1 ユーザ・レコードの変更 | |
すべてのユーザは,MAIL に用意されている各種の SET および SHOW コマンドを使用して,自分自身のレコードに関する情報を変更または表示することができます。
このようなコマンドは,各ユーザの情報を持つ,
単一キー索引順編成ファイル SYS$SYSTEM:VMSMAIL_PROFILE.DATA にアクセスします。
SYSNAM では,
SET FORWARD/USER= ユーザ コマンドを使用すると,
(システムにアカウントのないユーザを含め) ユーザへのメール転送先アドレスを変更することができます。
7.6.2 ユーザ・レコードの削除 | |
通常は,UAF からユーザ・レコードを削除したら,
ユーザ・プロファイル・ファイルからもそのユーザの情報を削除します。
ユーザ・プロファイル・ファイルからレコードを削除する場合は,
REMOVE コマンドを使用します。
7.6.3 AUTHORIZE フラグと MAIL | |
ユーザの UAF レコードには,ユーザの MAIL 環境に影響するフラグが含まれています。
AUTHORIZE の /FLAGS 修飾子を使用して,ユーザ・アカウントのフラグを設定することができます。
フラグ | 意味 |
---|
[NO]DISNEWMAIL | ユーザがシステムにログインしたときに新しいメール数を表示する [またはしない]。 |
[NO]DISMAIL | 新しいメールを受信する[またはしない]。 |
この節では,UAF レコードを作成するときにユーザ・プロセスに設定可能な資源制御属性について詳しく説明します。
7.7.1 ページおよびページレット | |
VAX,Alpha,および I64 システムは,ページという単位でプロセスにメモリを割り当てたり,解放したりします。
VAX システムでは,1 ページの大きさは 512 バイトです。
Alpha システムおよび I64 システムでは,いろいろなページ・サイズをサポートしています。
Alpha システムおよび I64 システムの OpenVMS オペレーティング・システムでは,現在 8KB (8192 バイト) ページを使用しています。 ほとんどの場合,Alpha システムおよび I64 システムは,
ページレットという 512 バイトの単位でユーザとメモリを処理します。
したがって,Alpha または I64 の 1 ページレットは VAX の 1 ページと同じ大きさです。
また,Alpha または I64 の 8KB コンピュータでは,Alpha または I64 の 16 ページレットが Alpha または I64 の 1 ページと等しくなります。
ページ,ページレット,バイトの関係を次に示します。
One Alpha or I64 pagelet = one VAX page = 512 bytes
One Alpha or I64 page = 16 Alpha or I64 pagelets = 16 VAX pages = 8192 bytes
|
AUTHORIZE ユーティリティのコマンド,パラメータ,省略時の値は同じですが,Alpha システムおよび I64 システムの場合,ユーザによってはメモリに関係するプロセス・クォータの省略時の値が適切でないことがあります。
Alpha システムおよび I64 システムの管理についての詳細は,『A Comparison of System Management on OpenVMS AXP and OpenVMS VAX』を参照してください。
(このマニュアルはアーカイブ扱いです。)
7.7.2 システム資源の制限の設定 | |
システムのすべてのユーザは,システム・メモリ,
揮発性 (ページファイル) ディスク空間,プロセス数,入出力要求などの資源の消費について制約を受けます。
そして,そうしたクォータを割り当てるのはシステム管理者の仕事であり,AUTHORIZE ユーティリティを使ってユーザにアカウントを作成するときに行います。
クォータとは,あるプロセスが,自分に割り当てられた資源を,自分で作成したサブプロセスと,どのように共用するかを制御する手段です。
1 人のユーザまたは 1 つのアカウントが一度に扱えるプロセスの数を制限するだけでなく,システムは資源の共用に 4 種類のクォータを使用します。
表 7-1 「資源タイプによる制限」 に,4 種類のクォータとその説明を示します。
表 7-8 「SYSTEM および DEFAULT アカウントのクォータ」 は,アカウントを作成するときに設定可能なクォータ項目の一覧です。
また表の後には,それらクォータ項目について個々に説明します。
通常,それらシステム資源では省略時のクォータ値を使用します。
ただし,最適な性能を実現するという観点からクォータ値を検討し,
調整したい場合は,
『Guide to OpenVMS Performance Management』で解説されている方法参照してください。
表 7-8 SYSTEM および DEFAULT アカウントのクォータ クォータ | タイプ | 説明 |
---|
ASTlm
[1] | 非差し引き型 | AST キュー制限 | BIOlm[1] | 非差し引き型 | 入出力バッファリング制限 | Bytlm[1] | プール型 | 入出力バッファリングのバイト数制限 | CPU[1] | 差し引き型 | CPU 時間制限 (0= 制限なし) | DIOlm[1] | 非差し引き型 | 直接入出力回数制限 | Enqlm[1] | プール型 | キュー登録クォータ | Fillm[1] | プール型 | オープン・ファイル制限 | JTquota[1] | プール型 | ジョブ全体の論理名テーブルに対する初期バイト数クォータ | Maxacctjobs | システム単位型 | アカウント 1 つあたりの最大アクティブ・プロセス数 (0= 制限なし) | Maxdetach | システム単位型 | ユーザ名 1 つあたりの最大独立プロセス数 (0= 制限なし) | Maxjobs | システム単位型 | ユーザ名 1 つあたりの最大アクティブ・プロセス数 (0= 制限なし) | Pgflquo[1] | プール型 | ページング・ファイル制限 | Prcl | プール型 | サブプロセス作成制限 | TQElm[1] | プール型 | タイマ・キュー・エントリ数 | WSdef[1] | 非差し引き型 | 省略時のワーキング・セット・サイズ | WSextent[1] | 非差し引き型 | ワーキング・セット超過制限 |
WSquo[1] | 非差し引き型 | ワーキング・セット・クォータ |
表 7-9 「SYSTEM および DEFAULT アカウントの説明」 は,SYSTEM および DEFAULT アカウントの名前と説明です。
そのクォータは,表 7-8 「SYSTEM および DEFAULT アカウントのクォータ」 にリストされています。
/EXPIRATION 修飾子についても,表 7-9 「SYSTEM および DEFAULT アカウントの説明」 で説明しています。
表 7-9 SYSTEM および DEFAULT アカウントの説明 アカウント | 説明 |
---|
AST キュー制限 (ASTlm) | 次の合計を制限する。
-
ユーザのプロセスが一度に持つことが可能な,未解決の非同期システム・トラップ (AST) 要求の個数 -
ユーザのプロセスが一度に持つことが可能な,未解決のスケジュール済みウェイクアップ要求の個数
この制限は,引数として AST アドレスを取るすべてのシステム・サービスとスケジュール・ウェイクアップ・($SCHDWK) システム・サービスに影響する。 書き込み延期オプション (DFW) が有効な場合,ファイル 1 つあたりに使用される AST 数は,1 にレコード・ストリーム数とマルチバッファ数を加えた値になる。
それ以外の場合は,1 にレコード・ストリーム数を加えた値である。
PQL_MASTLM が ASTlm より大きい場合には,アカウントの ASTlm 値より PQL_MASTLM が優先される。 |
入出力バッファリング回数制限 (BIOlm) | ユーザのプロセスに許される未解決の入出力バッファリング回数を制限する。 入出力バッファリングでは,プロセス指定のバッファではなく,
システム・プールの中間バッファからデータ転送が行われる。
ユーザのプロセスおけるバッファリング処理とは,ターミナル入出力やファイル・システムとネットワーク入出力,カード・リーダ入力,
スプールなしプリンタ出力などの処理である。
入出力のバッファリング中,
プロセス指定のバッファを保持するメモリ・ページをロックする必要はない。
PQL_MBIOLM が BIOlm より大きい場合には,アカウントの BIOlm 値より PQL_MBIOLM が優先される。 |
入出力バイト数制限 (Bytlm) | ユーザのプロセスが使用可能なバッファ空間量を制限する。 このバッファ空間は,入出力バッファリングと一時メールボックスの作成に使用される。
BYTLM はまた,セグメント化ウィンドウ (またはカテドラル・ウィンドウ) としてユーザが作成可能なマッピング・ウィンドウ数も制限する。
カテドラル・ウィンドウは特に,大きなファイルを読み取るときに生じるオーバヘッドを抑える上で役立つ。
PQL_MBYTLM が Bytlm より大きい場合には,アカウントの Bytlm 値より PQL_MBYTLM が優先される。 |
CPU 時間制限 (CPU) | ユーザのプロセスが 1 セッションあたりに使用可能な CPU 時間の長さを制限する。 時間の指定は,hh:mm:ss.cc の短縮デルタ形式で行う。 CPU は,差し引き可能な制限値で,通常の推奨値は 0 (制限なし) である。
しかし,この値が適用されるのは,ユーザ・プロセスのインスタンスだけか,その他のインスタンスである。
CPUTIME が複数のセッションや複数のバッチ・ジョブにまたがって累積されることはない。
PQL_MCPULM が CPU より大きい場合には,アカウントの CPU 値より PQL_MCPULM が優先される。 |
直接入出力回数制限 (DIOlm) | ユーザのプロセスに許される未解決の直接入出力回数を制限する。 直接入出力処理では,プロセス指定のバッファから直接データ転送が行われる。
一般的に,ユーザのプロセスおける直接入出力処理とは,
ディスクやテープに対する入出力処理である。
直接入出力中,
オペレーティング・システムは,プロセス指定のバッファを保持するメモリ・ページをロックする。 DIOlm は差し引き不可制限である。
PQL_MDIOLM が DIOlm より大きい場合には,アカウントの DIOlm 値より PQL_MDIOLM が優先される。 |
キュー登録クォータ (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 はプール型制限である。
PQL_MENQLM が Enqlm より大きい場合には,アカウントの Enqlm 値より PQL_MENQLM が優先される。 |
満了日時 (EXPIRATION) | 満了修飾子は,アカウントの満了日と満了時間を指定する。
/NOEXPIRATION 修飾子は,アカウントの満了日を削除したり,
アカウントの満了時間を再設定したりする。
/EXPIRATION 修飾子は,パスワードの満了には影響しない。 |
オープン・ファイル制限 (Fillm) | ユーザのプロセスが一度にオープンすることが可能なファイル数を制限する。
この制限には,同時にアクティブにすることが可能なネットワーク論理リンク数も含まれる。 Fillm はプール型制限である。
オープンしているファイルごとに少なくとも 96 バイトの Bytlm が必要になる。
PQL_MFILLM が Fillm より大きい場合には,アカウントの Fillm 値より PQL_MFILLM が優先される。 |
ジョブ・テーブル・クォータ (JTquota) | ジョブ全体の論理名テーブルを作成するときに適用する初期バイト・クォータを指定する。 JTquota はプール型クォータである。
PQL_MJTQUOTA が JTquota より大きい場合には,アカウントの JTquota 値より PQL_MJTQUOTA が優先される。 |
最大アカウント・ジョブ制限 (Maxacctjobs) | 1 つのアカウントのユーザ全員の間で一度にアクティブにすることが可能なバッチと会話,
独立プロセスの最大数を指定する。 Maxacctjobs はシステム単位の制限である。 |
最大独立プロセス制限 (Maxdetach) |
名前の挙げられたユーザ名を持つ独立プロセスの,一度にアクティブにできる最大数を指定する。
MAXDETACH は,ユーザが持つことのできる仮想ターミナルを制御するためにも使用できる。
ユーザに独立プロセスを作成させないためには,キーワード NONE を指定する。
省略時には,ユーザには 0 の値が指定されており,
これは独立プロセス数が制限されていないことを示す。 Maxdetach はシステム単位の制限である。 |
最大プロセス・ジョブ制限 (Maxjobs) | 名前の挙げられたユーザが一度にアクティブにすることができる会話型,
バッチ,独立プロセスの最大数を指定する。 Maxjobs はシステム単位の制限である。 |
ページ・ファイル制限 (Pgflquo) | ユーザのプロセスがシステム・ページ・ファイルで使用可能なページの数を制限する。
ページ・ファイルとは,メモリ管理によってメモリから強制的に追い出されたページに一時的なディスク空間を提供するファイルである。
Pgflquo は,仮想アドレス空間作成 ($CRETVA) またはプログラムまたは制御領域拡張 ($EXPREG) システム・サービスを使って作成可能な仮想アドレス空間を総量規制する。 Pgflquo はプール型制限である。
PQL_MPGFLQUOTA が Pgflquo より大きい場合には,アカウントの Pgflquo 値より PQL_MPGFLQUOTA が優先される。 |
サブプロセス作成制限 (Prclm) | ユーザのプロセスが作成可能なサブプロセス数を制限する。 システムにログインしたときに作成されるプロセスはサブプロセスを作成することができる。
そうしたすべてのサブプロセスはそれを作成したプロセスのユーザの所有であり,初期プロセスに割り当てられた資源を共用する。 Prclm はプール型制限である。 |
タイマ・キュー・エントリ制限 (TQElm) | 次の合計を制限する。
-
ユーザのプロセスがタイマ・キューに登録可能なエントリ数 -
ユーザのプロセスが持つことが可能な一時共通イベント・フラグ・クラスタ数
パーマネント・イベント・フラグ・クラスの作成が,この制限の影響を受けることはない。 タイマ・キュー・エントリは時間依存型のスケジューリングで使用され,共通イベント・フラグは協同動作するプロセスのグループ間の処理の同期に使用される。 TQElm はプール型制限である。
PQL_MTQELM が TQElm より大きい場合には,アカウントの TQElm 値より PQL_MPGPQL_MTQELM が優先される。 |
省略時のワーキング・セット・サイズ (WSdef) | ユーザのプロセスに対する初期ワーキング・セットの大きさを制限する。
WSdef は差し引き不可制限である。
指定値が WSQUO 値を超えている場合は,WSQUO 値の方が使用される。 |
ワーキング・セット超過制限 (WSextent) | ユーザが使用する物理メモリが増えたときに,システムの負荷に関係なくユーザが使用可能な最大メモリ量を指定する。
こうした物理メモリの拡大は,
ワーキング・セット制限調整 ($ADJWSL) システム・サービスで行うが,通常は,ページ・フォルトが頻発したときに,
オペレーティング・システムによって自動的に行われる。 WSextent は差し引き不可制限である。
この制限値は,WSQUO 値以上であることが必要。
またこの値は,システム・パラメータ WSMAX によって左右される。
PQL_MWSEXTENT が WSextent より大きい場合には,アカウントの WSextent 値より PQL_MWSEXTENT が優先される。 |
ワーキング・セット・クォータ (WSQUO) | ワーキング・セットのクォータを指定する。
これは,ユーザ・プロセスがワーキング・セットにロックすることが可能な最大物理メモリ量である。
またこのクォータは,
システムがプロセスに確保可能な最大スワップ空間量と,システム単位のメモリ要求が重要になったときにプロセスが消費可能な最大物理メモリ量も表す。
このパラメータにより,ユーザには決まったページ数の物理メモリが保証される。
WSQUO の最大値は 64K ページである。 WSQUO は差し引き不可制限である。
この制限値は,WSdef 値以上であることが必要。
またこの値は,システム・パラメータ WSMAX によって左右される。
PQL_MWSQUOTA が WSquo より大きい場合には,アカウントの WSquo 値より PQL_MWSQUOTA が優先される。 |
|