Hadoop >
目次 †
DFSシェル †
パーミッション †
- HDFSには、Ver. 0.16.x より POSIX をモデルにしたパーミッション機能が実装されました。デフォルトで有効となっていますが、設定で無効にすることも可能です。
- ただし、HDFSのパーミッションは、機能上、以下の点が異なります。
- HDFS 上でファイルを実行することはできませんので、ファイルの実行権限は無効です。したがって、ファイルの suid、sgid、sticky の各パーミッションもありません。また、シンプルさを重視して、ディレクトリの suid、sgid、sticky パーミッションも実装されていません。ただし、ファイル、ディレクトリの新規作成時には、ユーザの一次グループではなく、BSDライクに親ディレクトリのグループが引き継がれます(Linux などでいえば、ディレクトリの sgid パーミッションに相当します)。
- パーミッションチェックのためのユーザ識別子、グループ識別子リストは、デフォルトではクライアントプロセスのオーナーのそれが引き継がれます。しかし、アプリケーションコードなどで、hadoop.job.ugi プロパティに任意のユーザを指定することによりそれらを変更することが可能です。
- スーパーユーザは、root ではなく、NameNode プロセスのオーナー(通常、hadoop にします)がスーパーユーザとなります。
- また、スーパーユーザグループ(デフォルトでは、supergroup)を設定することも可能で、そのグループに属するユーザは、スーパーユーザとなります。
- なお、現時点では、HDFS はユーザ認証機構(またその委譲機構)を提供しておらず、NameNodeへのユーザ識別子の引き渡しは認証トークンではなく、平文です。したがって、HDFS のパーミッションは、セキュリティを目的としたものではなく、不注意によるデータ削除などを防ぎ、クラスタの円滑な利用をサポートするものと言えます。
|