前のトピック: デフォルト アクセス権の表示

次のトピック: 拒否アクセス制御リストの使用

条件付きアクセス制御リストの使用

ファイルアクセスに使用するプログラムを条件として、ファイルへのアクセス権を指定することができます。 このようにファイル アクセスを条件付きにすることを、Program Pathing と呼びます。

注: ファイルにアクセスする条件として指定されたプログラムがシェル スクリプトの場合は、そのシェル スクリプトの 1 行目に #!/bin/sh が含まれていなければなりません。

以下のコードは、パスワード変更プログラム /bin/passwd を使用するすべてのプロセスに対して、/etc/passwd ファイルの更新を許可する例です。 /bin/passwd 以外から行われた、/etc/passwd ファイルに対するアクセスの試みは、すべてブロックされます。

newres FILE /etc/passwd owner(nobody) defaccess(R)
authorize FILE /etc/passwd gid(users) access(U) via(pgm(/bin/passwd))

この newres コマンドは、/etc/passwd ファイルを CA Access Control に定義し、ファイルの所有者も含む任意のユーザに対してファイルの読み取りを許可します。 下の authorize コマンドは、/bin/passwd プログラムの制御下でアクセスが行われた場合に、すべてのユーザにファイルへのアクセスを許可します。 この方法でパスワード ファイルを保護すると、ユーザが /bin/passwd プログラムを使用していない場合は、トロイの木馬による /etc/passwd ファイルへのエントリの追加や「users」グループのユーザによるパスワード ファイルの更新がブロックされます。

条件付きアクセス リストは、データベース管理システム(DBMS)のファイルに対するアクセスを制御する場合にも役に立ちます。 通常は、データベース ベンダによって提供されているプログラムやユーティリィティを使用した場合にのみ、ユーザが DBMS ファイルにアクセスできるようにします。 以下のコマンドについて考えてみましょう。

authorize FILE /usr/dbms/xyz uid(*) via(pgm(/usr/dbms/bin/pgm1)) access(U)
authorize FILE /usr/dbms/xyz uid(*) via(pgm(/usr/dbms/bin/pgm2)) access(U)

この 2 つの authorize コマンドは、DBMS バイナリ ディレクトリに属しているプログラム pgm1 またはプログラム pgm2 のいずれかによってアクセスが行われた場合、すべての CA Access Control ユーザに、DBMS システムのファイルである xyz へのアクセスを許可します。 ユーザのオペランドにアスタリスクが使用されていることに注意してください。 このアスタリスクは、CA Access Control に定義されているすべてのユーザを指定します。 このアスタリスクの使用は、デフォルト アクセスの概念に類似しています。ただし、デフォルト アクセスは CA Access Control に定義されていないユーザにも適用される点において異なります。 CA Access Control データベースで定義されていないユーザに対して _undefined グループを使用できます。

また、Unicenter TNG カレンダの ACL プロパティを使用すると、Unicenter TNG カレンダのステータスに基づいて、現在のリソースに対するアクセスを特定のユーザおよびグループに対して許可または拒否できます。 Unicenter TNG カレンダの ACL プロパティには、標準プロパティと制限プロパティの 2 種類があります。

たとえば、以下のコマンドを実行すると、basecalendar という標準カレンダの条件付きアクセス制御リストに george というユーザが追加されます。

auth file file1 uid(george) calendar(basecalendar) access(rw)

また、以下のコマンドを実行すると、Unicenter TNG カレンダから george というユーザが削除されます。

auth- file file2 uid(george) calendar(basecalendar)