next up previous contents
Next: 9 SELinuxがサポートしないファイルシステムへのアクセス制御: allowfs Up: SPDL仕様書 ver 2.1. Previous: 7 通常ファイルのアクセス制御:allow/deny   Contents

Subsections

8 デバイスファイルのアクセス制御:allowdev

8.1 allowdev(1)

デバイスファイルの扱いには注意を要します。なぜなら、デバイスファイルは、 カーネルのリソースへのインターフェースとなっているからです。デバイスファ イルが、ハードディスクのデバイスドライバに関連付けられていたら、そのデ バイスファイルへの読み書きは、ディスクの破壊や情報漏洩につながります。
ここで紹介するallowdevにより、デバイスファイルへのアクセス制限をするこ とができます。
  1. 書式
    1. allowdev -root directory;
  2. 意味
    デフォルトでは、allowを使ってファイルへのアクセスを許可した としても、デバイスへのアクセスは許可されません。 デバイスへのアクセスを許可するには、この書式を使って、デバイスの 位置を明示的に指定しておく必要があります。 directory以下が、デバイスを格納するディレクトリとみなされ、 そのディレクトリ以下に対するallowを記述すると、デバイスへのアクセ スが許可されます。


  3. 	{ 
    	domain httpd_t;
    	allow /dev/* r,w;
    
    httpd_tは、/dev以下の普通のファイルにはr,wアクセスできるものの、 デバイスに対しては、アクセスできません。
    	{ 
    	domain httpd_t;
    	allowdev -root /dev;
    	allow /dev/* r,w;
    
    httpd_tは、/dev以下のファイルおよびデバイスファイルにr,wアクセス できます。
    ただし、wを指定しても、デバイスの生成、消去はallowpriv devcreate が記述されない限り、許可されません。

8.2 allowdev(2)(RBAC有効時のみ))

/dev/tty*デバイスファイルは、端末デバイスです。/dev/pts以下のデバイスは、 疑似端末です。端末デバイスは、ローカルログインの端末を現し、疑似端末は、 Xやsshログインの端末を表します。これらのデバイスと端末の関連付けはログイ ン時に行われます。
 もし、他のログインユーザの端末デバイスに書き込みが行えるとしたら、その ユーザの端末に余計な文字列を表示することで、他のユーザの作業を妨害できて しまいます。
SELinuxでは、端末や疑似端末デバイスにログインユーザのロールに応じたラベ ルが割り当てられます。ここで紹介するallowdevは、ラベルを隠蔽しつつ、端 末のアクセス制御を実現します。

  1. 書式
    1. allowdev -pts|-tty|-allterm open;
    2. allowdev -pts|-tty|-allterm role [r],[w];
    3. allowdev -pts|-tty|-allterm role admin;
  2. 意味
    -ttyは端末デバイス、 -ptsは疑似端末、-alltermsは端末、疑似端末両 方。
    1. これは、通常はロールの設定時に使われます。ロールに対して、 自分専用の端末を持つことを許可されます。

      内部的な動作ですが、これを設定しておくと、ログイン時にログインプログラムによっ て、デバイスにロールに応じたラベルが付与されるようになりま す。role prefix_tty_device_tとい う名前のラベルです。

    2. 他ロール専用の端末に、読み込みや書き込みのアクセス権限を 与えます。
    3. 端末の管理権限を与えます。つまり、端末のラベルを変更したり、 消去したりする権限です。
  3. 特別なロール名
    role部分には、以下のような特別な名前が使えます。



Yuichi Nakamura 2006-12-27