前へ | 次へ | 目次 | 索引 |
オペレーティング・システムは多くのユーザを同時にサポートするため,1 人のユーザの操作が別のユーザによって妨害されないように保護するためのセキュリティ・メカニズムが組み込まれています。保護コード,アクセス制御,ハードウェア設計の組み合わせにより,多くのユーザがシステムを共用できるように,メモリ,共用可能装置,データの使用が保護されます。オブジェクトのセキュリティ・プロファイルは利用者識別コード(UIC),ACL,そのオブジェクトに割り当てられた保護コードで構成されます。自分で所有しているオブジェクトのセキュリティ・プロファイルは表示したり,変更することができます。
保護されたオブジェクトのセキュリティ・プロファイルを表示するには,DCL の SHOW SECURITY コマンドを使用します。たとえば,次のコマンドは 95_FORECAST.TXT ファイルに関するセキュリティ情報を要求しています。
$ SHOW SECURITY 95_FORECAST.TXT WORK_DISK$:[GREG]95_FORECAST.TXT;1 object of class FILE Owner: [ACCOUNTING,GREG] Protection:(System: RWED, Owner: RWED, Group: RE, World) Access Control List: <empty> |
このコマンドからの表示を見ると,95_FORECAST.TXT ファイルが Greg というユーザによって所有されていることがわかります。また,ファイルの保護コードも示されます。保護コードはシステム・ユーザと所有者に対して読み込み,書き込み,実行,削除アクセス権を与えています。また,グループ・ユーザに対して読み込みアクセス権と実行アクセス権を与え,ワールド・ユーザに対してはアクセス権を与えていません(詳細は 第 10.3 節 を参照してください)。このファイルに対して ACL は設定されていません。
10.2.1 セキュリティ・プロファイルの変更
保護されたオブジェクトの所有者,保護コード,ACL に対して新しい値を指定でき,また,SET SECURITY コマンドを使用して 1 つのオブジェクトから別のオブジェクトにプロファイルをコピーすることもできます。
たとえば,第 10.2 節 に示した SHOW SECURITY の表示結果では,95_FORECAST.TXT ファイルがGregというユーザによって所有されていることがわかります。このユーザは所有者として,ファイルの保護コードを変更できます。もともと,この保護コードでは,ワールド・ユーザに対してアクセス権が与えられていませんでした。ここで Greg は保護コードを変更し,ワールド・ユーザに対して読み込みアクセス権と書き込みアクセス権を許可します。
$ SET SECURITY/PROTECTION=(W:RW)95_FORECAST.TXT |
SHOW SECURITYコマンドはファイルの新しい保護コードを確認します。
$ SHOW SECURITY 95_FORECAST.TXT 95_FORECAST.TXT object of class FILE Owner: [GREG] Protection:(System: RWED, Owner: RWED, Group: RE, World: RW) Access Control List: <empty> |
保護コードは,特定のユーザまたはユーザ・グループに対して許可(または禁止)されるアクセス・タイプを制御します。保護コードの形式は次のとおりです。
[カテゴリ: 許可されるアクセスのリスト(, カテゴリ: 許可されるアクセスのリスト,...)] |
カテゴリは,system(S),owner(O),group(G),world(W)のいずれかです。各カテゴリは最初の1文字に短縮できる。各カテゴリの定義は次のとおりです。
System | UIC が 1 〜 10(8 進数)であるか,SYSPRV 特権を持つか,または所有者と同じグループに属し,GRPPRV を保有するユーザ・プロセスまたはアプリケーション。 |
Owner | オブジェクトの UIC と等しい UIC を持つユーザ・プロセスまたはアプリケーション。 |
Group | オブジェクトのグループ UIC と等しいグループ UIC を持つユーザ・プロセスまたはアプリケーション。 |
World | システムの任意のユーザ・プロセスまたはアプリケーション。 |
複数のユーザ・カテゴリを指定するときは,各カテゴリをコンマで区切り,コード全体を括弧で囲みます。ユーザ・カテゴリとアクセス・タイプはどの順序で指定してもかまいません。
アクセス指定としてヌルを指定した場合には,アクセスを許可しないことを示します。したがって,ユーザ・カテゴリに対してアクセス・タイプを省略すると,そのユーザ・カテゴリはそのタイプのアクセスを実行できません。ユーザ・カテゴリに対してすべてのアクセスを禁止するには,ユーザ・カテゴリだけを指定し,アクセス・タイプを省略します。ユーザ・カテゴリに対してアクセスを禁止するときは,ユーザ・カテゴリの後のコロンを省略します。
ファイルに対して,read(R),write(W),execute(E),delete(D)を指定する。アクセス・タイプは各カテゴリに割り当てられます。カテゴリとアクセス・タイプの間はコロン(:)で区切ります。ファイル・アクセス・タイプの意味は次のとおりです。
Read | ディスク・ファイルの読み込み,印刷,コピーを許可する。ディレクトリ・ファイルに対して読み込みアクセス権がある場合には,ファイルを読み込むか,またはファイル・リストを表示でき,ワイルドカード文字を含むファイル名を使用してファイルを検索できる。読み込みアクセス権があるときは,実行アクセス権も与えられる。 |
Write | ファイルに書き込むか,またはファイルの内容を変更することはできるが,ファイルを削除することはできない。書き込みアクセス権がある場合には,ファイルの内容を記述するファイル属性を変更できる。ディレクトリ・ファイルに対する書き込みアクセス権がある場合には,ファイル・カタログにエントリを作成したり,エントリを削除することができる。 |
Execute | 実行可能プログラム・イメージまたは DCL コマンド・プロシージャを格納したファイルを実行することができる。ディレクトリ・ファイルに対して実行アクセス権が割り当てられている場合には,名前がわかっているファイルを検索できる。 |
Delete | ファイルを削除することができる。ファイルを削除するには,ファイルへの削除アクセス権と,そのファイルが格納されているディレクトリへの書き込みアクセス権が必要である。 |
新しいファイルには省略時のUICベースの保護が与えられ,その親ディレクトリの省略時のアクセス制御リスト(ACL)が与えられます。ACLは,ユーザまたはユーザ・グループがファイルやディレクトリ,装置などの特定の保護されたオブジェクトに対して実行できるアクセス権を定義したエントリの集合です。
新しいファイルに割り当てられる省略時のUICベースの保護を変更するには,次のいずれかの操作を実行します。
10.4.1 省略時のUIC保護
オペレーティング・システムは各プロセスに対して次のUICベースの保護を割り当てます。
(S:RWED, O:RWED, G:RE, W) |
省略時の設定では,システム UIC を持つユーザとオブジェクトの所有者は,そのオブジェクトに対して完全なアクセスを実行でき,オブジェクト所有者と同じ UIC グループに属すユーザは,そのオブジェクトに対して読み込みアクセスと実行アクセスを実行でき,他のすべてのユーザはオブジェクトにアクセスできません。作成するファイルの省略時の保護を変更するには,SET PROTECTION コマンドと/DEFAULT修飾子を使用します。たとえば,ログイン・コマンド・プロシージャに次のコマンドを登録しておけば,すべてのプロセスに対して作成するファイルへの読み込みアクセス権と実行アクセス権を割り当てることができます(このコマンドを実行するには,ログイン・コマンド・プロシージャを実行しなければなりません)。
$ SET PROTECTION =(S:RWED,O:RWED,G:RE,W:RE)/DEFAULT |
指定ディレクトリやサブディレクトリの省略時の UIC 保護を無効にするには,適切なディレクトリ・ファイルの ACL に省略時の保護 アクセス許可制御エントリ(ACE) を配置します。ACE に指定する省略時の保護は,指定したディレクトリまたはディレクトリのサブディレクトリに作成される新しいファイルにすべて適用されます。後続の ACE(ディレクトリ・ファイルの ACL 内に指定しなければならない)は,そのディレクトリおよびディレクトリのサブディレクトリの省略時の保護により,システムおよび所有者プロセスに対して完全なアクセス権を割り当て,グループ・プロセスに対して読み込みアクセス権と実行アクセス権を割り当て,ワールド・ユーザに対してアクセス権を割り当てないことを指定します。
$ SET SECURITY/ACL =(DEFAULT_PROTECTION,S:RWED,O:RWED,G:RE,W:) [JONES]PERSONAL.DIR |
ディレクトリにこの後作成されるファイルの ACL にコピーする省略時の識別子 ACE を指定するには,ディレクトリ・ファイルの識別子 ACL に DEFAULT オプションを指定します。
たとえば,次の ACE はディレクトリ・ファイルに適用され,ネットワーク・ユーザが,ディレクトリに作成されたすべてのファイルにアクセスすることを禁止します。
$ SET SECURITY/ACL =(IDENTIFIER=NETWORK,OPTIONS=DEFAULT,ACCESS=NONE)- _$ [JONES]PERSONAL.DIR |
ファイル名を変更しても,そのファイルの保護は変更されません。既存のファイルの新しいバージョンには,前のバージョンと同じACLおよびUICベースの保護が割り当てられます(省略時の UIC ベースの保護を変更するには,BACKUP,COPY,CREATE,SET FILE コマンドの /PROTECTION 修飾子を使用します)。
10.4.4 明示的なファイル保護
/PROTECTION 修飾子を使用すれば(この修飾子は BACKUP,COPY,CREATE コマンドで使用可能),新しいファイルに対して UIC ベースの保護を明示的に指定できます。
既存のファイルに対する UIC ベースの保護を変更するときは,SET SECURITY/PROTECTION コマンドを使用します。
ファイルを作成し,そのファイルの ACL を作成した後,ACL を変更し,必要な数だけ ACL にエントリを追加できます。ACL によって指定される保護は,ファイルのユーザ識別コード保護より優先します。
次の例では,UIC ベースの保護を指定しています。
$ CREATE MAST12.TXT/PROTECTION=(S:RWED,O:RWED,G,W) |
次の例では,ファイル MAST12.TXT で UIC ベースの保護を変更しています。
$ SET SECURITY/PROTECTION=(S:RWED,O:RWED,G:RE,W)MAST12.TXT |
これ以降の節では,ネットワークを介してのファイルへのアクセスについて説明します。
10.5.1 アクセス制御文字列
DECnet for OpenVMS ネットワークで使用できる DCL コマンドのファイル指定に,ネットワーク・アクセス制御文字列を取り込むことができます。アクセス制御文字列を使用すると,ローカル・ノードのユーザがリモート・ノード上のファイルにアクセスすることができます。
アクセス制御文字列では,次に示すように,リモート・アカウントのユーザ名とそのパスワードが二重引用符で囲まれています。
NODE"ユーザ名パスワード"::ディスク:[ディレクトリ]ファイル・タイプ |
アクセス制御文字列に収められている情報を知ることができれば,誰でもリモート・アカウントに侵入できるため,重大なセキュリティの侵害が発生しかねません。 |
ハードコピー・ターミナルを使用する場合は,ハードコピー出力を正しく処置する。ビデオ・ターミナルを使用する場合は,ネットワーク・ジョブが完了したら画面を消去し,DCL の RECALL/ERASE コマンドによって再呼バッファを空にする。こうしておけば,別のユーザが Ctrl/B によってコマンド行を表示したり DCL の RECALL/ALL コマンドを使用してもパスワードを見ることはできない。
10.5.3 代理ログイン・アカウントを使用してパスワードを保護する方法
アクセス制御文字列を使用しなくてもすむように,代理ログイン・アカウントを使用するとよいでしょう。代理ログインを使用すると,アクセス制御文字列にユーザ名やパスワードを指定しないでも,ネットワーク内でファイルをアクセスできます。代理ログインには,次のようなセキュリティ上の利点があります。
ユーザが代理ログインを開始するには,リモート・ノードのシステムまたはセキュリティ管理者が代理アカウントを作成していなければなりません。代理アカウントは,通常のアカウントと同様,OpenVMS Authorize ユーティリティ(AUTHORIZE)によって作成されます。通常,特権なしのアカウントです。ユーザは,1 つの省略時の代理アカウントと最大 15 個の省略時以外の代理アカウントにアクセスできます。 代理ログインを使用すると,システム管理者にとっては設定に手間がかかりますが,より安全なネットワーク・アクセスができ,ユーザがアクセス制御文字列を入力する手間も省けます。
次の例は,通常のネットワーク・ログイン要求と代理ログイン要求の違いを示しています。次の条件を想定しています。
次の図は,これらの条件を示しています。
$ COPY WALNUT"KMAHOGANY A25D3255"::BIONEWS.MEM BIONEWS.MEM |
A25D3255 というパスワードはエコー表示されるので,画面を見ればパスワードが分かります。
$ COPY WALNUT::BIONEWS.MEM BIONEWS.MEM |
KMAHOGANY がアクセス制御文字列にパスワードを指定しなくても,システムが BIRCH ノードのアカウントから WALNUT ノードのアカウントに代理ログインを行います。このとき,パスワードの交換は行われません。
セキュリティ管理者が,フォーリン・ノードのユーザのグループに汎用アクセス代理アカウントを共用する権限を付与することもあります。たとえば,WALNUT ノードのセキュリティ管理者が次の条件で汎用アクセス・アカウントを作成するとします。
セキュリティ管理者が GENACCESS アカウントへの BIRCH::KMAHOGANY 代理アクセスを許可すれば,KMAHOGANY ユーザは,次のコマンドによって BIONEWS.MEM ファイルをコピーできます。
$ COPY WALNUT::[KMAHOGANY]BIONEWS.MEM BIONEWS.MEM |
BIONEWS.MEM ファイルは GENACCESS アカウントの省略時のデバイスとディレクトリ(STAFFDEV:[BIOSTAFF])にないため,KMAHOGANY は [KMAHOGANY] ディレトクリを指定しなければなりません。 また,BIONEWS.MEM ファイルの保護は,GENACCESS アカウントへのアクセスを許可するものでなければなりません。そうでないと,コマンドは正しく実行されません。
特定のノード上の複数の代理アカウントにアクセスするときに,省略時の代理アカウントを使用したくない場合には,代理アカウントの名前を指定します。たとえば,GENACCESS アカウント(省略時の値)の代わりに PROXY2 という代理アカウントを使用するには,次のコマンドを入力します。
$ COPY WALNUT"PROXY2"::[KMAHOGANY]BIONEWS.MEM BIONEWS.MEM |
このコマンドは,PROXY2 アカウントを使用して,WALNUT ノード上の [KMAHOGANY] ディレクトリにある BIONEWS.MEM ファイルをコピーします。
前へ | 次へ | 目次 | 索引 |