# Compaq OpenVMS
DCL ディクショナリ

前へ | 次へ | 目次 | 索引

> ### /PROTECTION=(所有区分[:アクセス][,...])

> DECnet ソフトウェアを使用して，ファイルの保護を変更するために使用することはできません。

> オブジェクトの保護コードを修正します。保護コードは，ユーザのアクセスが許可されるるタイプをオブジェクトの所有者への関係に基づいて定義します。

> 所有者パラメータを，システム(S)，オーナ(O)，グループ(G)，またはワールド(W)として指定します。

> アクセス・タイプはクラス固有です。詳細は説明セクションの記述を参照してください。 アクセスには，アクセス名の最初の文字を指定します。保護コードの指定例は，例セクションを参照してください。

> ### /REPLACE=(ace[,...])

> /ACL 修飾子で指定された ACE を /REPLACE 修飾子で指定された ACE に置換します。 /REPLACE で指定された ACE は，最後に削除された ACE の位置に挿入されます。

> ### /SINCE[=時刻]

> 指定された時刻，またはそれ以降の時刻の日付のファイルを選択します。時刻には，絶対時刻，または絶対時刻と相対時刻あるいは，キーワード BOOT, LOGIN, TODAY(省略時の設定)， TODAY, TOMORROW を指定できます。選択に使われる時刻属性の表示には， /CREATED あるいは /MODIFIED修飾子を指定してください。 /CREATE 修飾子が省略時の設定です。

> 値の指定についての詳細は，『Compaq OpenVMS ユーザーズ・マニュアル』またはオンライン・ヘルプの DCL_Tips トピック (Date_Time サブトピック) を参照してください。

> ### /STYLE=キーワード

> 表示するファイル名の書式を指定します。

> この修飾子のキーワードは CONDENSED および EXPANDED です。意味は次の表のとおりです。

> キーワード | 説明
> --- | ---
> CONDENSED (省略時の設定) | ファイル名を 255 文字長の文字列に適合するように表示します。このファイル名の場合，ファイル指定に DID あるいは FID 短縮形を含むことが可能です。
> EXPANDED | ファイル名をディスクに格納されているとおりに表示します。このファイル名の場合，ファイル指定に DID あるいは FID 短縮形は含みません。

> キーワード CONDENSED と EXPANDED を同時に指定することはできません。この修飾子は，確認が要求された場合に，出力メッセージに表示されるファイル名の書式を指定します。

> EXPANDED キーワードが指定されていない場合，ファイル・エラーは CONDENSED ファイル指定で表示されます。

> 詳細は『 Compaq OpenVMS Extended File Specifications の手引き』を参照してください。

##

### 例

#1
    $  SHOW SECURITY LNM$GROUP /CLASS=LOGICAL_NAME_TABLE
    LNM$GROUP object of class LOGICAL_NAME_TABLE
         Owner: [SYSTEM]
         Protection: (System: RWCD, Owner: R, Group: R, World: R)
         Access Control List:
              (IDENTIFIER=[USER,VARANESE],ACCESS=CONTROL)
    $  SET SECURITY LNM$GROUP /CLASS=LOGICAL_NAME_TABLE -
    _$      /ACL=((IDENTIFIER=CHEKOV,ACCESS=CONTROL), -
    _$            (IDENTIFIER=WU,ACCESS=READ+WRITE)) -
    _$       /DELETE=ALL -
    _$       /PROTECTION=(S:RWCD, O:RWCD, G:R, W:R)
    $  SHOW SECURITY LNM$GROUP /CLASS=LOGICAL_NAME_TABLE
    LNM$GROUP object of class LOGICAL_NAME_TABLE
         Owner: [SYSTEM]
         Protection: (System: RWCD, Owner: RWCD, Group: R, World: R)
         Access Control List:
              (IDENTIFIER=[USER,CHEKOV],ACCESS=CONTROL)
              (IDENTIFIER=[USER,WU],ACCESS=READ+WRITE)

> この例は，直接オブジェクトの機密保護要素を変更する方法を示しています。最初の SHOW SECURITY コマンドで論理名テーブル LNM$GROUP の設定を確認し，次の SET SECURITY コマンドでユーザ Chekov に制御アクセス権を与え，ユーザ Wu に読み取り/書き込みアクセス権を与えています。 /DELETE=ALL 修飾子を指定しない場合は，これらの ACE は既存のものを置き換えるのではなく追加されるので注意してください。また，保護コードも所有者に読み込み，書き込み，作成，削除の各アクセスを許可するよう変更しています。最後のコマンドで変更を確認しています。

#2
    $  SHOW SECURITY LNM$GROUP /CLASS=LOGICAL_NAME_TABLE
    LNM$GROUP object of class LOGICAL_NAME_TABLE
         Owner: [SYSTEM]
         Protection: (System: RWCD, Owner: R, Group: R, World: R)
         Access Control List:
              (IDENTIFIER=[USER,FERNANDEZ],ACCESS=CONTROL)
    $  SHOW SECURITY LNM$JOB /CLASS=LOGICAL_NAME_TABLE
    LNM$JOB object of class LOGICAL_NAME_TABLE
         Owner: [USER,WEISS]
         Protection: (System: RWCD, Owner: RWCD, Group, World)
         Access Control List:  <empty>
    $  SET SECURITY LNM$JOB /CLASS=LOGICAL_NAME_TABLE -
    _$      /LIKE=(NAME=LNM$GROUP, CLASS=LOGICAL_NAME_TABLE) -
    _$      /COPY_ATTRIBUTES=PROTECTION
    $  SET SECURITY LNM$JOB /CLASS=LOGICAL_NAME_TABLE -
    _$      /ACL=(IDENTIFIER=FERNANDEZ, ACCESS=READ)
    $  SHOW SECURITY LNM$JOB /CLASS=LOGICAL_NAME_TABLE
    LNM$JOB object of class LOGICAL_NAME_TABLE
         Owner: [USER,WEISS]
         Protection: (System: RWCD, Owner: R, Group: R, World: R)
         Access Control List:
              (IDENTIFIER=[USER,FERNANDEZ],ACCESS=READ)

> この例は，機密アクセス情報をコピーすると同時に，明示的に機密保護要素を設定する方法を示しています。最初の SHOW SECURITY コマンドで論理名テーブル LNM$GROUP と LNM$JOB の設定を確認しています。次の SET SECURITY コマンドで保護コードを LNM$GROUP から LNM$JOB へコピーし，一人のユーザに読み込みアクセス権を与える ACE を追加しています。最後のコマンドで変更を確認しています。

#3
    $  SHOW SECURITY SECURITY_CLASS /CLASS=SECURITY_CLASS
    SECURITY_CLASS object of class SECURITY_CLASS
         Owner: [SYSTEM]
         Protection: (System: RWED, Owner: RWED, Group: R, World: R)
         Access Control List:  <empty>
      Template: DEFAULT
         Owner: [SYSTEM]
         Protection: (System: RWED, Owner: RWED, Group, World: RE)
         Access Control List:   <empty>
    $  SET SECURITY SECURITY_CLASS /CLASS=SECURITY_CLASS -
    _$      /PROFILE=TEMPLATE=DEFAULT -
    _$      /PROTECTION=(S:RWE, O:RWE, G:RE)
    $  SHOW SECURITY SECURITY_CLASS /CLASS=SECURITY_CLASS
    SECURITY_CLASS object of class SECURITY_CLASS
         Owner: [SYSTEM]
         Protection: (System: RWED, Owner: RWED, Group: R, World: R)
         Access Control List:  <empty>
      Template: DEFAULT
         Owner: [SYSTEM]
         Protection: (System: RWE, Owner: RWE, Group: RE, World: RE)
         Access Control List:  <empty>

> この例は，機密クラス・オブジェクトのテンプレートを変更する方法を示しています。最初のコマンドで SECURITY_CLASS オブジェクトの設定を確認しています。次のコマンドで「DEFAULT」テンプレートの保護コードを (S:RWE, O:RWE, G:RE) に変更しています。最後のコマンドで変更を確認しています。 World:RE の保護コードは変更されていません。

#4
    $  DIRECTORY/SECURITY
    Directory DKA200:[DATA]
    FILE001.DAT;1        [SYSTEM]                         (RWED,RWED,RE,)
    Total of 1 file.
    $  SET SECURITY/CLASS=FILE/PROTECTION=(WORLD:RE)/LOG FILE001.DAT
    %SET-I-MODIFIED, DKA200:[DATA]FILE001.DAT;1 modified
    $  DIRECTORY/SECURITY
    Directory DKA200:[DATA]
    FILE001.DAT;1        [SYSTEM]                       (RWED,RWED,RE,RE)
    Total of 1 file.
    $

> この例は，オブジェクトに UIC ベースの保護コードを設定する方法を示しています。最初の DIRECTORY コマンドで， FILE001.DAT ファイルの現在の保護設定を表示します。 SET SECURITY コマンドで，そのファイルの保護コードを変更して，すべてのユーザに対して読み込みおよび実行アクセスを可能としています。最後のコマンドで，変更結果を表示します。

# SET SERVER

> セキュリティおよびレジストリ・サーバを制御します。

> SYSPRV 特権が必要です。

## 形式

> SET SERVER サーバ名

## パラメータ

> ### サーバ名

> 有効な値は，SECURITY_SERVER, REGISTRY_SERVER です。

## 説明

> SET SERVER コマンドは，システム管理者に，セキュリティおよびレジストリ・サーバを制御するための手段を提供します。

> セキュリティ・サーバ (SECURITY_SERVER)

> このパラメータを指定すると，セキュリティ・サーバの起動，停止，および再起動を行うことができます。セキュリティ・サーバはシステム侵入データベースおよび代理データベースに格納されている情報を保守しています。

> システム侵入データベースは，LOGINOUT，DECnet/OSI，DECwindows，SHOW INTRUSION， DELETE INTRUSION，およびその他のアプリケーションによって使用されます。システム侵入データベースと，$DELETE_INTRUSION，$SCAN_INTRUSION，および $SHOW_INTRUSION システム・サービスの詳細については，『OpenVMS System Services Reference Manual』を参照してください。詳しい説明は，『OpenVMS Guide to System Security』を参照してください。

> システム代理データベースは，AUTHORIZE，DECnet/OSI，DFS，およびその他のアプリケーションによって，ネットワーク代理データベースに格納されている情報にアクセスするために使用されます。詳しい情報は『Compaq OpenVMS システム管理ユーティリティ・リファレンス・マニュアル』にあります。また，『OpenVMS System Services Reference Manual』の $ADD_PROXY，$DELETE_PROXY， $DISPLAY_PROXY，$VERIFY_PROXY システム・サービスも参照してください。

> レジストリ・サーバ (REGISTRY_SERVER)

> このパラメータを指定すると，レジストリ・サーバの起動，停止，および再起動を行うことができます。レジストリ・サーバは，レジストリ・データベースに格納されている情報を保守しています。

> レジストリ・データベースは，COM，PATHWORKS，およびその他のアプリケーションによって使用されます。

> レジストリ・データベースと $REGISTRY システム・サービスの詳細については，『OpenVMS System Services Reference Manual』を参照してください。また，SHOW SERVER コマンドの項も参照してください。

## 修飾子

> ### /ABORT

> クラスタ内の指定された 1 つまたは複数のノード上のレジストリ・サーバを強制終了します。

> /EXIT，/RESTART，または /START 修飾子とともに指定することはできません。

> ### /CLUSTER

> クラスタ内の個々のレジストリ・サーバに対して SET コマンドを発行し，レジストリ・マスタ・サーバを最後に設定します。

> /MASTER または /NODE 修飾子とともに指定することはできません。

> ### /EXIT

> 独立したセキュリティ・サーバ・プロセスを停止するか，またはクラスタ内の指定された 1 つまたは複数のノード上のレジストリ・サーバを停止します。

> /ABORT，/RESTART，または /START 修飾子とともに指定することはできません。

> ### /LOG

> 現在のレジストリ・サーバ・ログ・ファイルをクローズし，新しいファイルを作成します。

> ### /MASTER

> コマンドをレジストリ・マスタ・サーバに対してのみ発行します。 SYSLCK 特権が必要です。

> /CLUSTER，/NODE，または /START 修飾子とともに指定することはできません。

> ### /NODE=(ノード名[,...])

> SET コマンドを，指定されたノード上のレジストリ・サーバに対し，入力された順序で発行します。ノード名は現在のクラスタ内に存在していなければなりません。

> /CLUSTER または /MASTER 修飾子とともに指定することはできません。

> ### /RESTART

> 独立したセキュリティ・サーバ・プロセスを再起動するか，またはクラスタ内の指定された 1 つまたは複数のノード上のレジストリ・サーバを再起動します。

> /ABORT，/EXIT，または /START 修飾子とともに指定することはできません。

> ### /START

> 独立したセキュリティ・サーバ・プロセスを起動するか，またはクラスタ内の指定された 1 つまたは複数のノード上のレジストリ・サーバを起動します。

> /ABORT，/EXIT，または /RESTART 修飾子とともに指定することはできません。

##

### 例

#1
    $ SET SERVER SECURITY_SERVER/RESTART/MASTER

> このコマンドは，独立したセキュリティ・サーバ・プロセスを起動します。

#2
    $ SET SERVER SECURITY_SERVER/EXIT

> このコマンドは，独立したセキュリティ・サーバ・プロセスを停止します。

#3
    $ SET SERVER SECURITY_SERVER/RESTART

> このコマンドは，独立したセキュリティ・サーバ・プロセスを再起動します。

#4
    $ SET SERVER REGISTRY_SERVER/RESTART/MASTER

> このコマンドは，マスタ・サーバ上の独立したレジストリ・サーバを再起動します。

#5
    $ SET SERVER REGISTRY_SERVER/LOG/CLUSTER

> このコマンドは，現在のログ・ファイルをクローズし，クラスタ内のすべてのシステム上で新しいファイルをオープンします。

#6
    $ SET SERVER REGISTRY_SERVER/EXIT/NODE=(KAKADU,CAIRNS)

> このコマンドは，ノード KAKADU および CAIRNS 上の独立したレジストリ・サーバ・プロセスを停止します。

# SET SYMBOL

> コマンド・プロシージャ内で，ローカル・シンボルあるいはグローバル・シンボルへのアクセスを制御します。

## 形式

> SET SYMBOL

## 説明

> SET SYMBOL コマンドは，シンボルを未定義と見なして，コマンド・プロシージャでのローカル・シンボルとグローバル・シンボルのアクセスを制御します。外側のプロシージャ・レベルで定義されたすべてのグローバル・シンボルとローカル・シンボルは，内部のプロシージャ・レベルでアクセスできるため，通常，これらのシンボルを削除しないでマスクする必要があります。

> SET SYMBOL コマンドは，DCL がコマンド行を処理する前に，動詞文字列 (コマンド行上の最初のトークン) をシンボルとして変換するかどうかも制御します。省略時の設定では，変換が試みられます。この動作を変更すると，コマンドを起動したときに，コマンド・プロシージャが外側のプロシージャ・レベル環境から影響されないという利点があります。

> シンボルの有効範囲コンテキストは，ローカル・シンボルとグローバル・シンボルとで異なります。ローカル・シンボルは，プロシージャ・レベルで独立です。外側のサブルーチン・レベルで定義されたローカル・シンボルは，内側のどのサブルーチン・レベルでも読み込めますが，書き込めません。外側のサブルーチン・レベルでローカル・シンボルに値を割り当てると，現在のサブルーチン・レベルで新しいシンボルが作成されます。ただし，外部のプロシージャ・レベルのシンボルは，変更されません。

> つまり，SET SYMBOL/SCOPE=NOLOCAL コマンドは，外側のプロシージャ・レベルで定義されたすべてのローカル・シンボルを，現在のプロシージャ・レベル，および任意の内側のレベルからアクセスできないようにします。たとえば，SET SYMBOL/SCOPE=NOLOCAL コマンドをプロシージャ・レベル2および4で指定すると，プロシージャ・レベル 2 では，レベル 2 のローカル・シンボルだけを読み込むことができます (書き込みはできません)。レベル 3 では，レベル 2 のローカル・シンボルを読み込むことができ (書き込みはできません)，レベル 3 のローカル・シンボルを読み込み/書き込みできます。レベル 4 では，レベル4のローカル・シンボルだけを読み込み/書き込みできます。

> グローバル・シンボルは，プロシージャ・レベルで独立しています。現在のグローバル・シンボルの有効範囲コンテキストは，以後すべてのプロシージャ・レベルに適用されます。 /SCOPE=NOGLOBAL 修飾子を指定すると，/SCOPE=GLOBAL 修飾子を指定するか，プロシージャが終了してグローバル・シンボルをアクセスできる前のレベルに戻るまで，すべてのグローバル・シンボルは以後のすべてのコマンドからアクセスできなくなります。また，/SCOPE=NOGLOBAL 修飾子を指定すると， /SCOPE=GLOBAL 修飾子を指定するまで，新しいグローバル・シンボルを作成できなくなります。

> あるプロシージャ・レベルを終了して前のプロシージャに戻ると，ローカル・シンボルとグローバル・シンボルの両方に対して，前のレベルからの有効範囲コンテキストが回復されます。

> 現在のシンボルの有効範囲状態を表示するには，レキシカル関数 F$ENVIRONMENT("SYMBOL_SCOPE") を使用します。

## 修飾子

> ### /ALL (省略時の設定)

> /SCOPE 修飾子で指定した値が，コマンド行の最初のトークンの変換と，シンボル置換全般に適用されます。

> /ALL 修飾子は，/GENERAL や /VERB 修飾子と同時に指定できません。

> ### /GENERAL

> /SCOPE 修飾子で指定した値が，コマンド行の最初のトークンの展開を除いたシンボル置換全般に適用されます。

> /GENERAL 修飾子は，/ALL や /VERB 修飾子と同時に指定できません。

> ### /SCOPE=(キーワード,...)

> ローカルおよびグローバル・シンボルへのアクセスを制御します。未定義のシンボルとして扱います。指定できるキーワードを次に示します。

> NOLOCAL | 外側のプロシージャ・レベルで定義されたすべてのローカル・シンボルが，現在のプロシージャと内側のすべてのプロシージャ・レベルで未定義であるものとして扱われます。
> LOCAL | 現在のプロシージャ・レベルで設定された任意のシンボル変換制限を解除します。
> NOGLOBAL | 変更されるまで，すべてのグローバル・シンボルが，現在のプロシージャ・レベルと内側のすべてのプロシージャ・レベルでアクセスできないようにします。
> GLOBAL | すべてのグローバル・シンボルへのアクセスを元に戻します。

> ### /VERB

> /SCOPE 修飾子で指定した値が，コマンド行の最初のトークンの変換にのみ適用されることを指定します。シンボル置換全般には適用されません。

> 注意 1 つのコマンド・プロシージャ内で SET SYMBOL/VERB/SCOPE コマンドが2 度以上使用されると警告が発せられます。 DCL がラベルやサブルーチンの検索に変換動作を使用しているので，これがモードごとに変わってしまう可能性があるからです。 SET SYMBOL/VERB/SCOPEコマンドは，プロシージャのセットアップ時の一回だけにして，プロシージャ内ではそのモードを変更しないことをおすすめします。

> /VERB 修飾子は，/ALL や /GENERAL 修飾子と同時に指定できません。

##

### 例

#1
    $ SET SYMBOL/SCOPE=NOLOCAL

> 外側のプロシージャ・レベルで定義されたローカル・シンボルはすべて，現在のプロシージャとすべての内側のプロシージャ・レベルでは，未定義となります。

#2
    $ SET SYMBOL/SCOPE=NOGLOBAL

> もし他の方法で変更されなかったならば，すべてのグローバル・シンボルは，現在のプロシージャ・レベルとすべての内側のプロシージャ・レベルではアクセスできません。

#3
    $ NOW :== SHOW TIME
    $ !
    $ NOW
       3-NOV-2001 11:48:58
    $ !
    $ SET SYMBOL /VERB /SCOPE=NOGLOBAL
    $ NOW
    %DCL-W-IVVERB, unrecognized command verb-check validity and spelling
     \NOW\
    $ !
    $ SHOW SYMBOL NOW
      NOW == "SHOW TIME"

> この例は，/VERB 修飾子の使用方法を説明します。

> シンボル NOW に SHOW TIME が代入され，次の行で省略時設定の動作が示されています。ここでは DCL は，コマンド行の最初の文字列(NOW)を置換して， SHOW TIME コマンドを実行しています。

> 次の SET SYMBOL コマンドで，DCL がシンボル置換しないように指定します。そのため，文字列 NOW が動詞として評価され，コマンド・テーブルにないためエラー・メッセージが返されます。

> 次の SHOW SYMBOL コマンドで示されるように， /VERB 修飾子による動詞変換は，シンボル置換全般には影響しません。

前へ | 次へ | 目次 | 索引