next up previous contents
Next: 8.9 ネットワークのアクセス制御設定 Up: 8 単純化ポリシー記述言語の仕様 Previous: 8.7 ドメイン遷移の設定   Contents

Subsections

8.8 通常ファイルのアクセス制御設定


8.8.1 allow

  1. シンタックス
    1. allow filename $\mid$ label [r],[w],[x],[s];
    2. allow directoryname exclusive label;
  2. 意味
    1. ファイルへのアクセス権限を設定する
    2. これはSELinuxのfile_type_auto_trans相当の機能です。directoryname以下に作成されるファイルはlabelによって識別されます。そのようなファイルにアクセスを許可するには、allow label [r],[w],[x],[s]を使います。消去、再生成されるファイル(例:/etc/mtab)を保護したいのならば、この機能を使用します。labelはSELinuxにおいてタイプと同じようなものです。
      単純化ポリシコンパイラがlabelと名付けられたタイプを有するファイル (ファイル名はAと仮定)を見付けた時、以下の文が,生成され るfile_contextsに含まれます。
        A   system_u:object_r:label
      
      ファイルが設定時に存在せず、消去、再生成されるファイルを保護したい場合,有用な方法です。例えば、/var/run、/tmp、/var/log以下のファイルが考えられます。

  3. パーミッションの意味 3

  4. {
    domain httpd_t;
    ...
    allow /var/www r,s;
    ....
    httpd_tは/var/www以下の全てのファイルとディレクトリの読み込み権限を持つ。

8.8.2 deny

  1. シンタックス
    deny filename;
  2. 意味
    通常のドメインでは、これはallowをキャンセルするために使われます。globalドメインでは、明示的にアクセスを拒否するために使います。以下の例を御覧下さい。
    1. 例1
      {
      domain httpd_t;
      ...
      allow /var r,s;
      deny /var/named; ....
      httpd_tは/varの読み込み権限があるが、/var/namedを読み込む権限は拒否されている。
    2. 例2
      {
      domain global;
      deny /etc/shadow
      ...
      {
      domain httpd_t;
      ...
      allow /etc r,s;
      ...
      httpd_tは/etc以下を読み込む権限あるが、/etc/shadowを読み込む権限は拒 否されている。/etc/shadowへのアクセスは、globalにおいて拒否されて いるからである。重要なファイルがあれば、globalにおいてdeny文を記述すると良いです。

8.8.3 allowonly

  1. シンタックス
    allowonly directory name [r],[w],[x],[s];
  2. 意味
    allowにおいてアクセス権限はすべてのサブディレクトリに継承されま す。それに対して、allowonlyでは、ディレクトリ直下のファイルへのア クセスは許可されているが、サブディレクトリに対しては許可されていません。

  3. {
    domain httpd_t;
    ...
    allowonly /etc r,s;
    ....
    httpd_tは/etc以下の読み込み権限を持っているが、/etc/httpdのようなサブディレクトリへのアクセス権限はない。.

8.8.4 denyonly

  1. シンタックス
    denyonly directory name;
  2. 意味
    denyアクセスがディレクトリ直下のファイルに設定されているが、サブディレ クトリには設定されていない。

8.8.5 allow, allowonly, deny, denyonlyの優先度

  1. 同じディレクトリに対して設定された場合,globalドメインにおいてallow(deny),allowonly(denyonly)は、通常ドメインにおけるallow(deny),allowonly(denyonly)によって上書きされる。
  2. 子ディレクトリにallowもしくはdenyが存在した場合、親ディレクトリのallowを上書きする。
  3. 同じドメインかつ同じディレクトリにおけるallowもしくはdeny
    OR演算が取られます。

  4. globalドメインに関する補足
    globalドメインにおいてallow/denyをキャンセルするためには、明示的にallow/denyを記さなければなりません。
  5. ドメインがどのファイルにアクセスできるのか知るにはGUIが有用です。

8.8.6 特殊ファイル

以下のファイルへのアクセスは特殊になっています。
  1. /dev/tty* /dev/pts /dev/ptmx
    これらのファイルにallow文を書いても何も起こりません。 allowttyやallowptsによってアクセス制御がかけられているからです。
  2. /proc, /sys, /selinux, /dev/tmpfs
    これらのファイルをallowしても何も起こりません。なぜなら、xattrをサポー トしていないファイルシステムによって、これらのファイルはマウント されているからです。/procと/sysについてはallowprocを参照して下さ い。/dev/tmpfsについてはallowtmpfsを、/selinuxについてはallowadm を参照して下さい。


next up previous contents
Next: 8.9 ネットワークのアクセス制御設定 Up: 8 単純化ポリシー記述言語の仕様 Previous: 8.7 ドメイン遷移の設定   Contents
Yuichi Nakamura 2005-08-01