モジュール java.base
パッケージ java.io

クラスFilePermission

java.lang.Object
java.security.Permission
java.io.FilePermission
すべての実装されたインタフェース:
Serializable, Guard

public final class FilePermission extends Permission implements Serializable
このクラスは、ファイルまたはディレクトリへのアクセスを表します。 FilePermissionは、パス名と、そのパス名に対して有効なアクションの集合からなります。

パス名には、指定したアクションを許可するファイルまたはディレクトリのパス名を指定します。 「/*」(「/」はファイル区切り文字File.separatorChar)で終わるパス名は、そのディレクトリに含まれるすべてのファイルとディレクトリを表します。 「/-」で終わるパス名は、そのディレクトリに含まれるすべてのファイルとサブディレクトリを(再帰的に)表します。 このようなパス名はワイルドカード・パス名と呼ばれます。 それ以外の場合は、単純なパス名です。

パス名に特殊なトークン「<<ALL FILES>>」を指定した場合は、すべてのファイルに一致します。

ノート: 1つの「*」で構成されるパス名は、現在のディレクトリのすべてのファイルを示し、1つの「-」で構成されるパス名は、現在のディレクトリのすべてのファイル、および(再帰的に)現在のディレクトリに格納されているすべてのファイルおよびサブディレクトリを示します。

許可するアクションは、カンマで区切られた1個以上のキーワードのリストを内容とする文字列としてコンストラクタに引き渡されます。 指定できるキーワードは、「read」、「write」、「execute」、「delete」、および「readlink」です。 それぞれの意味は、次のように定義されます。

read
読取り権限
write
書込み権限
execute
実行権限 Runtime.execの呼出しを許可します。 SecurityManager.checkExecに対応します。
delete
削除権限 File.deleteの呼出しを許可します。 SecurityManager.checkDeleteに対応します。
readlink
リンク読取り権。 readSymbolicLink メソッドを呼び出すことにより、シンボリック・リンクのターゲットを読み取ることができます。

アクション文字列は、処理の前に小文字に変換されます。

FilePermissionを許可する場合には注意してください。 さまざまなファイルやディレクトリへの読取りアクセス、特に書込みアクセスを許可するとどうなるかをよく検討してください。 writeアクションに対して「<<ALL FILES>>」を指定するのは特に危険です。 これは、ファイル・システム全体に対する書込みを許可するということです。 このような指定をすると、事実上、JVM実行環境を含め、システム・バイナリを置き換えることが可能になってしまいます。

ノート: コードは同一ディレクトリ(またはそのディレクトリのサブディレクトリ)内のファイルを常に読み取ることができるので、読取り時のアクセス権を明示する必要はありません。

導入されたバージョン:
1.2
関連項目: