Hadoop 使用webhdfs的GETFACL中未显示掩码值
在Hadoop中,我启用了授权。我为一个目录设置了几个acl 当我在hadoop bin中执行getfacl命令时,我可以看到其中的掩码值Hadoop 使用webhdfs的GETFACL中未显示掩码值,hadoop,acl,webhdfs,Hadoop,Acl,Webhdfs,在Hadoop中,我启用了授权。我为一个目录设置了几个acl 当我在hadoop bin中执行getfacl命令时,我可以看到其中的掩码值 hadoop fs -getfacl /Kumar # file: /Kumar # owner: Kumar # group: Hadoop user::rwx user:Babu:rwx group::r-x mask::rwx other::r-x 如果我使用webhdfs运行相同的命令,则不会显示掩码值 http://localhost:5007
hadoop fs -getfacl /Kumar
# file: /Kumar
# owner: Kumar
# group: Hadoop
user::rwx
user:Babu:rwx
group::r-x
mask::rwx
other::r-x
如果我使用webhdfs运行相同的命令,则不会显示掩码值
http://localhost:50070/webhdfs/v1/Kumar?op=GETACLSTATUS
{
"AclStatus": {
"entries": [
"user:Babu:rwx",
"group::r-x"
],
"group": "Hadoop",
"owner": "Kumar",
"permission": "775",
"stickyBit": false
}
}
在webhdfs for GETFACL命令中不显示掩码值的原因是什么
帮我弄清楚 HDFS实现了该模型。链接文档解释了掩码条目被持久化到经典POSIX权限模型的组权限位中。这样做是为了支持POSIX ACL的要求,还支持与现有工具(如chmod)的向后兼容性,这些工具不知道扩展ACL条目。引用该文件:
在最小ACL中,组类权限与
拥有组权限。在扩展ACL中,组类可以
包含其他用户或组的条目。这导致了
问题:其中一些附加条目可能包含以下权限:
不包含在所有者组条目中,因此所有者组条目
权限可能不同于组类权限
此问题通过掩码条目解决。最少
ACL,组类权限映射到所属组条目
权限。使用扩展ACL时,组类权限映射到
掩码条目权限,而所属组条目仍
定义拥有的组权限
当应用程序更改任何所有者、组或其他类时
权限(例如,通过chmod命令)、相应的ACL条目
变化也是如此。同样,当应用程序更改权限时
对于映射到其中一个用户类的ACL条目,权限
这是阶级变革的结果
这与您的问题有关,因为这意味着掩码实际上没有作为扩展ACL条目持久化。相反,它在许可位。查询WebHDFS时,您已经进行了一个“原始”API调用来检索有关ACL的信息。当运行getfacl
时,您已经运行了一个应用程序,该应用程序在该API调用之上分层了额外的显示逻辑getfacl
知道,对于具有ACL的文件,组权限位被解释为掩码,因此它会相应地显示
这不是WebHDFS特有的。如果应用程序要通过NameNode的RPC协议调用getAclStatus
,那么它将看到与WebHDFS响应相当的响应。另外,如果要在webhdfs://
URI上使用getfacl
命令,那么该命令仍将显示掩码,因为应用程序知道应用该逻辑,而不管文件系统实现如何