UNIX システムでは、スプレッドシート、プリンタ、レター、本の章、メールボックスなど、ほとんどすべてのものがディレクトリに格納されるファイルとして扱われるため、何かを実行する場合にはユーザーファイルとディレクトリにアクセスする必要があります。この節では、アクセスの条件について説明します。UNIX システムではデバイスもファイルとして扱われますが、デバイスに適用される必須アクセス制御に関する規則は、ファイルまたはディレクトリに適用される規則とは若干異なります。デバイスに適用される必須アクセス制御に関する規則については、この節で別途説明します。
ファイル、ディレクトリ、デバイスは、次の方法でアクセスする場合があります。
「名前」を「表示する」(読み取る)
「内容」を「表示する」(読み取る)
「内容」または「属性」を「修正する」(書き込む)
Trusted Solaris システムでは、次の条件に基づいてこれらのアクセスが許可または拒否されます。
UNIX の基本的な任意アクセス制御の条件を満たしたかどうか
必須アクセス制御の条件を満たしたかどうか
あらゆる種類のアクセスで、プロセスの機密ラベルがパス名に含まれるすべてのディレクトリの機密ラベルより優位であり、かつプロセス所有者 (コマンドを実行した人) がパス名に含まれる各ディレクトリに対し任意の検索アクセス権を持っていることが必要です。この条件を満たしていればファイル、ディレクトリ、デバイスの名前を表示できます。
ファイルまたはディレクトリの内容や属性を表示する (読み取りアクセスを行う) 場合は、プロセスの機密ラベルが、ファイルまたはディレクトリの機密ラベルより優位でなければなりません。また、デバイスの内容を表示する (たとえば、テープドライブに装填されたテープの情報を読み込む) 場合は、プロセスの機密ラベルが、デバイスの機密ラベルと同等である必要があります。プロセス所有者は、ファイル、ディレクトリ、デバイスに対して任意の読み取りアクセスができなければなりません。
ファイルに書き込みを行なったり、ファイルの属性を修正したりするプロセスの場合は、ファイルの機密ラベルが、プロセスの機密ラベルより優位であり、かつプロセスの認可上限の範囲に収まっていなければなりません。プロセスの認可上限には、セッションの認可上限が設定されます。ディレクトリへの書き込みを行う (ファイルを作成する) プロセスの場合は、プロセスの機密ラベルが、ディレクトリの機密ラベルと同等でなければなりません。一方、デバイスへの書き込みを行う (たとえば、テープドライブに装填されているテープに情報を格納する) 場合、プロセスの機密ラベルが、デバイスの機密ラベルと同等でなければなりません。プロセス所有者は、ファイル、ディレクトリ、デバイスに対し任意の書き込みアクセス権を持っている必要があります。
デバイスファイルに関するセキュリティポリシーは、device_policy(4) ファイルにどのように定義されているかによって、通常のファイルに適用されるポリシーとは異なる場合があります。なお、このファイルは、セキュリティ管理者役割によって変更できます。
MAC 検査または DAC 検査で不合格になった各原因について、拒否されたアクセスの種類に基づいて固有の無効化特権をコマンドに対して指定することができます。コマンドに対し無効化特権を設定できるのはセキュリティ管理者役割だけです。なぜなら、セキュリティ管理者役割は、特権が信頼のある方法で行使されるよう、コマンドを実行するユーザーが認可されていること、またはコマンドの使用が信頼できることを確認しておかなければならないからです。
次に示す条件と無効化特権は、どの種類のアクセスにも適用されます。
プロセスの機密ラベルが、パス名に含まれるすべてのディレクトリの機密ラベルより優位であるか、またはプロセスが上位検索 (プロセスの機密ラベルより優位の機密ラベルを持つディレクトリを検索すること) 特権 (file_mac_search
) を持っている
コマンドを実行するユーザーが、パス名に含まれるすべてのディレクトリについて任意の検索特権を持っているか、またはプロセスがディレクトリにアクセスする際に検索制約を無効にする特権 (file_dac_search
) を持っている
次に示す条件と無効化特権は、表示 (読み取り) アクセスに適用されます。
プロセスの機密ラベルがファイルの機密ラベルより優位であるか、またはディレクトリやデバイスの機密ラベルと同等であるか、またはプロセスが MAC 読み取り制約を無効にする特権 (file_mac_read
) を持っている
コマンドを実行するユーザーは、ファイルまたはディレクトリに対して任意の読み取りアクセス権を持っているか、またはプロセスが DAC 読み取り制約を無効にする特権 (file_dac_read
) を持っている
次に示す条件と無効化特権は、変更 (書き込み) アクセスに適用されます。
ファイルの機密ラベルがプロセスの機密ラベルより優位であるか、ディレクトリまたはデバイスの機密ラベルがプロセスの機密ラベルと同等であるか、またはプロセスが MAC 書き込み制約を無効にする特権 (file_mac_write
) を持っていて、上位書き込みや、ユーザーの認可上限より上位のファイル、ディレクトリまたはデバイスに対する書き込みが行える
コマンドを実行するユーザーは、ファイルまたはディレクトリに対して任意の書き込みアクセス権を持っているか、またはプロセスが DAC 書き込み制約を無効にする特権 (file_dac_write
) を持っている