前へ | 次へ | 目次 | 索引 |
ディレクトリには個々に保護が設定されます。このときディレクトリの保護は,そこに含まれる個別ファイルの保護に優先することがあります。たとえば,ディレクトリに含まれているファイルが一般ユーザのアクセスを許可していたとしても,ディレクトリが一般ユーザのアクセスを拒否している場合,一般ユーザがファイルにアクセスすることはできません。
ディレクトリを保護するために設定できるアクセス権を 表 10-4 に示します。
アクセス権 | 与えられる権利 |
---|---|
読み込み | ファイルの表示,プリント,およびコピーのアクセス権。
ディレクトリに対する読み込みアクセス権があると, DIRECTORY コマンドを使ってディレクトリの内容を表示することができる。たとえば,ディレクトリ [JONES] に対する読み込みアクセス権があれば,次のコマンドを入力することによって, [JONES] ディレクトリに含まれるファイルのリストを得ることができる。
$ DIRECTORY [JONES] このアクセス権があれば,ファイル自体にアクセスを拒否する保護が設定されていないかぎり,ディレクトリ中の任意のファイルにアクセスすることができる。 |
書き込み | ディレクトリを変更したり,ディレクトリに書き込んだりする権利。 ただし,ディレクトリでのファイルの作成,ディレクトリ内のファイル名の変更などのディレクトリ・ファイルの変更を伴うファイル操作を行うためには,ディレクトリに対する読み込みおよび書き込み両方の権利が必要である。 |
実行 | この権利がディレクトリに対して適用されると,
実行アクセス権により,名前を指定してファイルにアクセスできるが,ディレクトリ内の全エントリをリストすることはできない。すなわち,特定のあるいは暗黙のワイルドカードは使用できない。たとえば,[JONES] ディレクトリに対する権利が実行アクセス権しかなくて,次のコマンドを入力すると仮定する。
$ DIRECTORY [JONES] これに対しシステムはエラー・メッセージ "insuffcient privilage or file protection violation" を出すだけで, [JONES] ディレクトリのファイルのリストを表示しない。 [JONES] ディレクトリに DATAFILE.DAT というファイルがあることが判明している場合は,次のコマンドを使用することができる。
システムは指定ファイルの内容を表示する。つまり,アクセス権が実行アクセス権だけの場合は,読み込みアクセス権で可能な操作の一部しか行うことができない。個々のファイルへのアクセスは,まだファイル保護によって制御されている。 たとえば,EXPENSES.DAT ファイルの内容を表示するには,ディレクトリ・ツリー内の JONES,REPORT,および JUNE の各ディレクトリに読み込みアクセス権または実行アクセス権を持っている必要がある。
|
削除 | ディレクトリ・ファイルを削除する権利。 ディレクトリ・ファイルを削除するためには,ディレクトリに含まれるすべてのエントリを削除しておく必要がある。 CREATE/DIRECTORY コマンドでディレクトリを作成した場合,省略時の設定では,削除アクセス権は付与されない。ディレクトリ・ファイルを削除したい場合は, DCL の SET PROTECTION コマンドを使用し,所有者カテゴリに明示的に削除アクセス権を割り当てておく必要がある。 |
制御 | ディレクトリの属性を変更する権利。 |
ファイルを完全に保護するためには,それが置かれているディレクトリに少なくとも同じ保護を適用する必要があります。たとえば,ファイルに対するすべてのアクセス権をユーザに与えていて,そのファイルが存在するディレクトリについて,読み込みアクセス権だけ与えている場合,ユーザはファイルの存在を確認することはできますが,ファイルの内容にアクセスすることはできません。また,ファイルに対するアクセスだけ許可されていて,そのファイルが存在するディレクトリまたはそのディレクトリの親ディレクトリに対するアクセスが拒否されている場合は,ファイルの存在を確認することもできません。
重要なファイルの保護は,ディレクトリの保護だけでは不十分です。ディレクトリに含まれるファイルについても,個々に保護する必要があります。ディスク・ファイルの保護については, 第 10.5.3 項 を参照してください。 |
省略時の設定では,ディレクトリには UIC に基づく保護 (S:RWE,O:RWE,G:RE,W:E) が適用され,ACL は適用されません。新しく作成されたディレクトリには,削除アクセス権を除き,親ディレクトリと同じ保護が適用されます。
ディレクトリに UIC に基づく保護を指定するときは,次のガイドラインに従ってください。
以降の項ではディレクトリ保護属性と省略時の 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:) |
テープは個々のユーザの装置であるため,テープの保護はボリューム・レベルでしか行われません。通常,磁気テープ・ボリュームの保護コードは, 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 というファイルの内容を読み取る手順を紹介します。
$ DIRECTORY DISK$DOCUMENT:[CHARLES...]HISFILE.* |
オペレーティング・システムは [CHARLES] ディレクトリとそのすべてのサブディレクトリを検索して,HISFILE のすべてのファイル・タイプとバージョン番号を探す。
ターミナルに次の情報が表示される。
Directory DISK$DOCUMENT:[CHARLES.MEMO] HISFILE.UPD;1 Total of 1 file. |
この情報は,HISFILE には 1 つのバージョンしか存在せず,ファイル・タイプがUPD であること,また,そのファイルが [CHARLES.MEMO] ディレクトリに存在していることを示している。
$ TYPE [CHARLES.MEMO]HISFILE.UPD |
ターミナルに HISFILE の内容が表示される。
この節では,ファイル・レベルでのテープへのアクセスについて説明します。標準ラベルのボリュームまたはファイルへのアクセス要求があると,オペレーティング・システムは,プロセスがその権限を持っているかチェックします。このときシステムがアクセスをチェックするレベルは,ボリューム・レベルとファイル・レベルの 2 つです。どのレベルのチェックが行われるかは,要求された処理と,その処理が必要とするアクセスのタイプによって異なります。
ボリュームまたはファイルへのアクセスがあると,オペレーティング・システムは,そのボリュームまたはファイルに対するアクセスが制限されていないか調べます。このとき読み取られるラベルは,要求された処理によって異なり,ボリューム・ラベルかファイル・ヘッダ・ラベル,あるいはその両方が読み取られます。たとえば,ボリュームのマウントの場合,プロセスにはそのボリュームに対するアクセス権が必要です。
ファイルに対するアクセスの可否は,そこに設定されている保護コードによって決まります。また,ヘッダの満了日フィールドによって,直前のファイルに対する書き換えや追加を防ぐことができます。満了日に達していないファイルが満了することはありません。
満了していないファイルを書き換えるためには, ボリュームをマウントするときに /OVERRIDE=EXPIRATION 修飾子を指定する必要があります。また,この操作を行うためには,読み込みアクセス権か書き込みアクセス権が必要です。
この節では,テープ・ファイル名および磁気テープに対する次の作業について説明します。
作業 | 参照箇所 |
---|---|
標準ラベル・テープ上のファイルの検索 | 第 10.7.2 項 |
テープ・ファイルに対するワイルドカード文字の使用法 | 第 10.7.3 項 |
テープ・ボリュームからのファイルの読み込み | 第 10.7.4 項 |
テープ・ボリュームへのファイルの書き込み | 第 10.7.5 項 |
OpenVMS システムでは,磁気テープのファイルに対して, 2 種類のファイル名を使用することができます。
表 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 |
磁気テープ・ボリューム上のファイルにアクセスして,読み込みまたは書き込みを行う際に,その格納場所が分からないことがあります。そうした場合は,DCL の DIRECTORY コマンドを使用してください。
テープ・ファイル名を指定した DIRECTORY コマンドが入力された場合,テープ・ファイル・システムは次のことを行います。
前へ | 次へ | 目次 | 索引 |