请描述HDFS权限管理的实现机制,并说明如何运用该机制限制对文件和目录的访问操作。
考察说明
考察对HDFS权限模型及其访问控制实现原理的理解程度。
回答思路
- 【回答框架 1】HDFS权限管理与POSIX权限模型类似,采用用户(User)、组(Group)和其他(Other)三类主体,以及读(r)、写(w)和执行(x)三种权限。每个文件和目录都关联所有者、所属组及对应权限位。
- 【回答框架 2】权限检查发生在NameNode端,每次客户端请求(如open、create、mkdir等)会携带用户身份(由RPC协议传递,默认取自客户端进程的Unix用户),NameNode根据请求者身份及目标文件的元数据中的权限设置,校验是否具备所需权限。
- 【回答框架 3】HDFS默认启用权限检查,但存在超级用户(如启动NameNode的用户)可绕过权限限制。此外,HDFS不提供修改文件属主和权限的专门命令,需通过chown、chgrp、chmod等命令操作,但HDFS不是强一致的文件系统,权限校验可能受缓存影响。
- 【回答框架 4】对于目录,执行权限(x)决定了能否访问该目录下的子项,而读取权限(r)和写入权限(w)则分别控制列出目录内容和新增删除子项的能力。文件的操作权限则分别对应读取数据、写入/追加数据及执行脚本(对文件而言x权限意义有限)。
- 【关键点 1】HDFS权限模型基于POSIX,区分用户/组/其他和读/写/执行权限。
- 【关键点 2】权限校验在NameNode端执行,基于RPC携带的用户身份。
- 【关键点 3】超级用户可绕过权限检查。
- 【关键点 4】目录的x权限控制子项访问,r控制列出,w控制增删。
- 【易错点 1】不要忽略HDFS权限检查存在默认配置和超级用户绕过情况。
- 【易错点 2】不要误认为HDFS权限检查是实时强一致的,可能受客户端缓存影响。
- 【易错点 3】不要混淆目录的执行权限与文件执行权限的实际作用。