前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >0715-6.2.0-用户有CREATE权限建表后无HDFS文件的ACL访问权限异常分析

0715-6.2.0-用户有CREATE权限建表后无HDFS文件的ACL访问权限异常分析

作者头像
Fayson
发布2019-10-23 16:47:28
1.2K0
发布2019-10-23 16:47:28
举报
文章被收录于专栏:Hadoop实操Hadoop实操Hadoop实操

异常描述

  • 测试环境

1.Redhat7.4

2.CDH6.2.0

3.集群启用了Sentry和Kerberos

在C6集群中使用hive管理员创建一个测试库acltest,将该库的CREATE权限赋予ldapff组。ldapff用户在该库下创建的表,在命令行使用hadoop命令没有权限访问该表的hdfs目录,提示没有权限访问。

为ldapff用户授权acltest库的CREATE权限

使用ldapff用户创建测试表,并插入测试数据

在命令行使用hadoop命令访问在acltest库下创建的test表数据目录

异常分析

Ldapff用户拥有acltest库的CRETATE权限,用户在该库下创建了test表,ldapff用户则是test表的owner,此时查看表的父级目录/user/hive/warehouse/acltest.db目录的ACL显示如下:

hadoop fs -getfacl /user/hive/warehouse/acltest.db

由上图可以看到test表的父级目录(/user/hive/warehouse/acltest.db),ldapff组的访问权限为“group:ldapff:---”,因为ldapff组无权限访问表的父级目录,所以即使ldapff是test表的owner也无法正常访问相应的HDFS目录。

异常解决

由于ldapff用户组无法访问/user/hive/warehouse/acltest.db目录,因此通过授权SELECT权限的方式解决。

1.为ldapff用户授权acltest库的SELECT权限

查看此时acltest库的HDFS路径ACL权限,显示如下:

显示ldapff组有查看acltest库对应HDFS的读和执行权限,再次访问test表的HDFS路径显示成功

hadoop fs -ls /user/hive/warehouse/acltest.db/test

2.在测试该问题的过程中发现,将授予ldapff组的SELECT权限删掉acltest库对应的HDFS路径ACL权限发生了变化

再次查看test表的HDFS路径发现又可以正常访问:

将赋予的CREATE权限删除,重新为acltest库赋予CREATE权限后,ACL的权限又再次发生变化

总结

1.拥有CREATE权限的用户组,需要访问自己创建的表对应HDFS路径时需要为该用户组授予表所属库的SELECT权限。

2.在C6中多了一个CREATE权限,管理的Object为Database/Table,这是一个比较特殊的权限,无法直接Mapping到HDFS上的RWX任何权限。

3.只有在为库赋予CREATE权限时,才会触发在acltest库的HDFS路径添加一条”group:ldapff:---”的ACL,有了该条ACL后就会导致ldapff用户无法访问自己创建的表。

4.当删除赋予用户的SELECT权限后,只拥有CREATE权限用户创建的表对应的HDFS路径又可以正常访问,这里应该属于C6版本的一个BUG。

Fayson的github: https://github.com/fayson/cdhproject

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-10-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Hadoop实操 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
访问管理
访问管理(Cloud Access Management,CAM)可以帮助您安全、便捷地管理对腾讯云服务和资源的访问。您可以使用CAM创建子用户、用户组和角色,并通过策略控制其访问范围。CAM支持用户和角色SSO能力,您可以根据具体管理场景针对性设置企业内用户和腾讯云的互通能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档