# Compaq OpenVMS
システム管理者マニュアル

前へ | 次へ | 目次 | 索引

## 10.5.4 ディスク・ディレクトリの保護

ディレクトリには個々に保護が設定されます。このときディレクトリの保護は，そこに含まれる個別ファイルの保護に優先することがあります。たとえば，ディレクトリに含まれているファイルが一般ユーザのアクセスを許可していたとしても，ディレクトリが一般ユーザのアクセスを拒否している場合，一般ユーザがファイルにアクセスすることはできません。

ディレクトリを保護するために設定できるアクセス権を 表 10-4 に示します。

表 10-4 ディレクトリの保護とアクセス権
アクセス権 | 与えられる権利
--- | ---
読み込み | ファイルの表示，プリント，およびコピーのアクセス権。 ディレクトリに対する読み込みアクセス権があると， DIRECTORY コマンドを使ってディレクトリの内容を表示することができる。たとえば，ディレクトリ [JONES] に対する読み込みアクセス権があれば，次のコマンドを入力することによって， [JONES] ディレクトリに含まれるファイルのリストを得ることができる。
    $ DIRECTORY [JONES]
このアクセス権があれば，ファイル自体にアクセスを拒否する保護が設定されていないかぎり，ディレクトリ中の任意のファイルにアクセスすることができる。
書き込み | ディレクトリを変更したり，ディレクトリに書き込んだりする権利。 ただし，ディレクトリでのファイルの作成，ディレクトリ内のファイル名の変更などのディレクトリ・ファイルの変更を伴うファイル操作を行うためには，ディレクトリに対する読み込みおよび書き込み両方の権利が必要である。
実行 | この権利がディレクトリに対して適用されると， 実行アクセス権により，名前を指定してファイルにアクセスできるが，ディレクトリ内の全エントリをリストすることはできない。すなわち，特定のあるいは暗黙のワイルドカードは使用できない。たとえば，[JONES] ディレクトリに対する権利が実行アクセス権しかなくて，次のコマンドを入力すると仮定する。
    $ DIRECTORY [JONES]
これに対しシステムはエラー・メッセージ "insuffcient privilage or file protection violation" を出すだけで， [JONES] ディレクトリのファイルのリストを表示しない。 [JONES] ディレクトリに DATAFILE.DAT というファイルがあることが判明している場合は，次のコマンドを使用することができる。
    $ TYPE [JONES]DATAFILE.DAT
システムは指定ファイルの内容を表示する。つまり，アクセス権が実行アクセス権だけの場合は，読み込みアクセス権で可能な操作の一部しか行うことができない。個々のファイルへのアクセスは，まだファイル保護によって制御されている。 たとえば，EXPENSES.DAT ファイルの内容を表示するには，ディレクトリ・ツリー内の JONES，REPORT，および JUNE の各ディレクトリに読み込みアクセス権または実行アクセス権を持っている必要がある。
    $ TYPE [JONES.REPORTS.JUNE]EXPENSES.DAT
削除 | ディレクトリ・ファイルを削除する権利。 ディレクトリ・ファイルを削除するためには，ディレクトリに含まれるすべてのエントリを削除しておく必要がある。 CREATE/DIRECTORY コマンドでディレクトリを作成した場合，省略時の設定では，削除アクセス権は付与されない。ディレクトリ・ファイルを削除したい場合は， DCL の SET PROTECTION コマンドを使用し，所有者カテゴリに明示的に削除アクセス権を割り当てておく必要がある。
制御 | ディレクトリの属性を変更する権利。

UIC に基づくディレクトリの保護

ファイルを完全に保護するためには，それが置かれているディレクトリに少なくとも同じ保護を適用する必要があります。たとえば，ファイルに対するすべてのアクセス権をユーザに与えていて，そのファイルが存在するディレクトリについて，読み込みアクセス権だけ与えている場合，ユーザはファイルの存在を確認することはできますが，ファイルの内容にアクセスすることはできません。また，ファイルに対するアクセスだけ許可されていて，そのファイルが存在するディレクトリまたはそのディレクトリの親ディレクトリに対するアクセスが拒否されている場合は，ファイルの存在を確認することもできません。

注意 重要なファイルの保護は，ディレクトリの保護だけでは不十分です。ディレクトリに含まれるファイルについても，個々に保護する必要があります。ディスク・ファイルの保護については， 第 10.5.3 項 を参照してください。

省略時の設定では，ディレクトリには UIC に基づく保護 (S:RWE,O:RWE,G:RE,W:E) が適用され，ACL は適用されません。新しく作成されたディレクトリには，削除アクセス権を除き，親ディレクトリと同じ保護が適用されます。

ディレクトリに UIC に基づく保護を指定するときは，次のガイドラインに従ってください。

- ディレクトリを作成するときに明示的に UIC に基づく保護を指定する場合は，CREATE/DIRECTORY コマンドに/PROTECTION 修飾子を使用する。 ディレクトリを作成する前に，ACL を指定することはできない。

- 既存のディレクトリの UIC に基づく保護を変更する場合は，
  SET PROTECTION コマンドを使用する。これは，ディレクトリ・ファイルに働くコマンドである。

- ディレクトリの読み込みアクセス権を許可せずに，実行アクセス権を付与することによって，ディレクトリに対するアクセスを制限することができる。この場合，ディレクトリへのアクセスが禁止されることはなく，ユーザはディレクトリ内のファイルの内容表示と読み込みを行うことができる。ディレクトリに含まれるファイルのリストの表示は行えない。

以降の項ではディレクトリ保護属性と省略時の ACL 保護の変更について説明します。

### 10.5.4.1 ディレクトリ UIC 保護属性の変更

ディレクトリの保護属性の変更には，DCL の SET DIRECTORY コマンドを使用します。

例

    $ SET DIRECTORY/OWNER_UIC=[360,020] [DAVIS],[USERS]

この例では，[DAVIS] と [USERS] ディレクトリの所有者 UIC を変更しています。/OWNER_UIC 修飾子には，SYSPRV (システム特権) が必要になります。

### 10.5.4.2 省略時の ACL 保護の変更

省略時の保護 ACE を適切なディレクトリ・ファイルの ACL に置けば，指定ディレクトリまたはサブディレクトリの省略時の UIC 保護を変更できます。 ACE で指定されている省略時の保護は，指定のディレクトリ，あるいはそのディレクトリの任意のサブディレクトリにあるすべての新規ファイルに適用されます。

例

次の ACE は，(ディレクトリおよびサブディレクトリ内で作成されたファイル用の) 省略時の保護が，システムおよび所有者にフル・アクセス権，グループ・プロセスに読み込みおよび実行アクセス権を許し，ワールド・ユーザにアクセスを許さないように指定します。 ACE はディレクトリ・ファイルの ACL に入っている必要があります。

    (DEFAULT_PROTECTION,S:RWED,O:RWED,G:RE,W:)

## 10.5.5 磁気テープ・ファイルの保護

テープは個々のユーザの装置であるため，テープの保護はボリューム・レベルでしか行われません。通常，磁気テープ・ボリュームの保護コードは， INITIALIZE コマンドで設定します。

DCL コマンドを使用して，磁気テープ・ボリュームの保護属性を変更することはできません。詳細は 第 9.5.1 項 を参照してください。

# 10.6 ディスク・ファイルへのアクセス

この節では，DCL コマンドを使用して，レコード・レベルではなく，ファイル・レベルでファイルにアクセスする方法について説明します。こうしたアクセスが行われる処理には，ファイルの読み込みとテープ・ファイルのコピーがあり，前者についてはこの節で，後者については 第 10.8.1 項 でそれぞれ説明します。

DCL には，レコード・レベルでファイルを操作する機能があります。しかし，性能上の理由から，ユーザ独自のプログラムを代わりに使用することもあります。このような場合は，レコード・レベルでのファイル・アクセス専用に設計されている OpenVMS レコード管理サービス (RMS) 機能を利用することをおすすめします。 オペレーティング・システムがサポートしている言語であれば，任意の言語を使用できます。

ファイル・レベルでのディスク・ファイルのアクセスには， DCL コマンドを使用することができます。ただし，DCL コマンドを使用して，オペレーティング・システムがサポートしている標準形式以外のファイルを，読み込みまたは書き込みすることはできません。ファイルが標準形式以外の場合は，/FOREIGN 修飾子でボリュームをマウントして，読み込みまたは書き込みする必要があります。

この節で紹介する例は，RA90 ディスク・パック上のディスク・ファイルに対するアクセス例ですが，使用されている方法は他の装置にも有効です。

DCL において，ディスク・ファイルを読み込みたい場合は，ターミナルにファイル内容を表示する TYPE コマンドを使用します。また，読み取るディスク・ファイルの格納場所を知りたい場合は，DIRECTORY コマンドを使用します。

作業方法

ここでは，論理名 DISK$DOCUMENT が指すディスク装置の， [CHARLES] というディレクトリに含まれていることがわかっている， HISFILE というファイルの内容を読み取る手順を紹介します。

1. 次のコマンドを入力して，HISFILE が格納されている場所を調べる。

       $ DIRECTORY DISK$DOCUMENT:[CHARLES...]HISFILE.*

   オペレーティング・システムは [CHARLES] ディレクトリとそのすべてのサブディレクトリを検索して，HISFILE のすべてのファイル・タイプとバージョン番号を探す。
   ターミナルに次の情報が表示される。

       Directory DISK$DOCUMENT:[CHARLES.MEMO]
       HISFILE.UPD;1
       Total of 1 file.

   この情報は，HISFILE には 1 つのバージョンしか存在せず，ファイル・タイプがUPD であること，また，そのファイルが [CHARLES.MEMO] ディレクトリに存在していることを示している。

2. 次のコマンドを入力して，ファイルの内容を読み込む。

       $ TYPE [CHARLES.MEMO]HISFILE.UPD

   ターミナルに HISFILE の内容が表示される。

# 10.7 テープ・ファイルへのアクセス

この節では，ファイル・レベルでのテープへのアクセスについて説明します。標準ラベルのボリュームまたはファイルへのアクセス要求があると，オペレーティング・システムは，プロセスがその権限を持っているかチェックします。このときシステムがアクセスをチェックするレベルは，ボリューム・レベルとファイル・レベルの 2 つです。どのレベルのチェックが行われるかは，要求された処理と，その処理が必要とするアクセスのタイプによって異なります。

ボリュームまたはファイルへのアクセスがあると，オペレーティング・システムは，そのボリュームまたはファイルに対するアクセスが制限されていないか調べます。このとき読み取られるラベルは，要求された処理によって異なり，ボリューム・ラベルかファイル・ヘッダ・ラベル，あるいはその両方が読み取られます。たとえば，ボリュームのマウントの場合，プロセスにはそのボリュームに対するアクセス権が必要です。

ファイルに対するアクセスの可否は，そこに設定されている保護コードによって決まります。また，ヘッダの満了日フィールドによって，直前のファイルに対する書き換えや追加を防ぐことができます。満了日に達していないファイルが満了することはありません。

満了していないファイルを書き換えるためには， ボリュームをマウントするときに /OVERRIDE=EXPIRATION 修飾子を指定する必要があります。また，この操作を行うためには，読み込みアクセス権か書き込みアクセス権が必要です。

この節では，テープ・ファイル名および磁気テープに対する次の作業について説明します。

作業 | 参照箇所
--- | ---
標準ラベル・テープ上のファイルの検索 | 第 10.7.2 項
テープ・ファイルに対するワイルドカード文字の使用法 | 第 10.7.3 項
テープ・ボリュームからのファイルの読み込み | 第 10.7.4 項
テープ・ボリュームへのファイルの書き込み | 第 10.7.5 項

## 10.7.1 テープ上のファイル名の説明

OpenVMS システムでは，磁気テープのファイルに対して， 2 種類のファイル名を使用することができます。

- OpenVMS 拡張ファイル名
  OpenVMS オペレーティング・システムのみを使用する媒体上にファイルを保存する場合は， OpenVMS 拡張ファイル名を使用する。

- 標準ファイル名
  OpenVMS 以外のオペレーティング・システムの媒体上にファイルを移動する必要がある場合は，標準ファイル名を使用する。

表 10-5 に，OpenVMS 拡張ファイル名および標準ファイル名の特性の違いを示します。

表 10-5 OpenVMS 拡張ファイル名および標準ファイル名の比較
特性 | OpenVMS 拡張ファイル名 | 標準ファイル名
--- | --- | ---
有効なボリューム | テープ・ボリュームおよびディスク・ボリューム | テープ・ボリューム
形式 | ファイル名 . タイプ; バージョン | ファイル名 .; バージョン ( バージョンはオプション)
長さ | 39.39; | 17.;
有効な文字 | A から Z，0 から 9，アンパサンド (&)，ハイフン (-)，アンダスコア ( _ )，ドル記号 ($)，ワイルドカード文字のアスタリスク (*) およびパーセント記号 (%) | 二重引用符 (" ") で囲まれた ASCII "a" 1 文字。 DCL はファイル名の1組の二重引用符("")を単一の二重引用符(")として解釈する。ファイル名が 17 文字に満たない場合は，システムはファイル名の右側をスペースで埋め，最大サイズの 17 文字にする。
例 | OPENVMS_ FILENAME.DAT;23 | "GENLABEL#123";2

1ASCII "a" 文字セットは ISO 9660 規格の 7.4.1 に定義されている。

## 10.7.2 標準ラベル・テープ上のファイルの検索

磁気テープ・ボリューム上のファイルにアクセスして，読み込みまたは書き込みを行う際に，その格納場所が分からないことがあります。そうした場合は，DCL の DIRECTORY コマンドを使用してください。

テープ・ファイル名を指定した DIRECTORY コマンドが入力された場合，テープ・ファイル・システムは次のことを行います。

1. 指定されたファイル名と一致するものが見つかるまで，各ファイルのファイル・ヘッダ・ラベルのファイル識別子フィールドを調べる。

   - ファイル名にバージョン番号が指定された場合は，第 1 ヘッダ・ラベルの作成番号と作成バージョン番号フィールドを調べる。

   - バージョン番号が指定されなかった場合は，省略時のバージョン番号の適用は行われず，作成番号と作成バージョン番号フィールドも調べない。

2. ファイル識別子フィールドのファイル名が，指定ファイル名と最初に一致するファイルを選択する。
   オペレーティング・システムは，磁気テープ・ボリュームのディレクトリ構造と最新バージョン番号の適用をサポートしていない。したがって，磁気テープ・ボリューム上のファイルの最新バージョンの検索やリスト表示を行うことはできない。磁気テープ・ファイル・システムがテープ・ファイルのバージョン番号を増やすことはないので，同じボリューム・セットに同じファイル名とバージョン番号を持つファイルが存在することがある。
   そうした場合，テープ・ファイル・システムは最初に一致するファイル名とバージョン番号を選択する。このため，検索したときにどのファイルが返されるかは，ボリューム・セット内の磁気テープの検索開始位置によって異なる。検索処理はテープ上の現在位置から開始されるので，場合によってはファイルのアクセス前にテープ・ボリュームを巻き戻すことが必要である。

3. 次のファイルのヘッダ・ラベル・セットの先頭から，一致ファイルの検索が再開される。検索が終了するのは，磁気テープが検索を開始したファイル位置になったとき。
   ボリューム・セットの現在のボリューム内に一致するファイルがない場合は，システムは残りのボリュームを順次検索し，さらに，先頭ボリュームの先頭に戻って検索を行う。そして一致するファイルがない場合は，エラーを報告する。

前へ | 次へ | 目次 | 索引