当前位置:   article > 正文

HDFS权限管控_hdfs setfacl default

hdfs setfacl default

HDFS权限管控

HDFS在权限管控时,提供类似POSIX系统的文件和目录权限模型,这里称为普通权限管控。它和在linux系统上的操作类似,每个文件或目录都有owner、group、other三种角色,它们拥有不同的权限。权限分为r、w、x三种。rwx权限,也可以使用数字4、2、1表示。

HDFS可以通过开启配置支持POSIX ACLs,提供更加灵活的授权。ACLs的开启,需要在hdfs-site.xml中进行设置:

<property>
  <name>dfs.namenode.acls.enabled</name>
  <value>true</value>
</property>
  • 1
  • 2
  • 3
  • 4

普通权限管控

对于普通的权限管控操作,首先需要在linux本地创建用户和用户组。

# 创建用户组big
groupadd big
# 创建用户big,并指定用户组为big
useradd -m -g big big
# 检测用户的创建情况
id big
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

然后在HDFS上创建需要进行权限管控的目录/big。

hadoop fs -mkdir /big
  • 1

普通权限的管控较为简单,主要是通过更改owner、group、other的权限,或者直接更改目录或文件的owner和group来完成。

一般来说,为新用户进行赋权,直接修改other权限最为简单,但因此也开放了权限,风险较大。

hadoop fs -chmod o+r /big
  • 1

如果是单一用户,较为推荐的是直接更改owner和group,如果是多用户,则将新用户直接添加到所属的group中即可。然后通过设置owner、group、other的权限来保证安全。

# 更改目录所属的owner、group
hadoop fs -chown big:big /big
# 设置owner、group、other的权限
hadoop fs -chmod -R 750 /big
# 多用户,则将用户直接添加到group即可
useradd -m -g big big_new
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

ACLs权限管控

普通权限管控,在多用户的情况下,将新用户直接添加到用户组中以达到授权的目的。但这样的话,所有用户的权限与group保持一致,无法单独定义某个用户的权限。

此时,可以开启ACLs权限管控,单独为各个用户进行权限设置。

在Hive操作中,有这样的一个场景,当安装了HUE组件后,希望通过HUE来直接向Hive发送SQL执行。但HUE使用的是自己的用户,假设为hue,希望将Hive数据目录为hue用户开放权限,以便进行数据操作。

首先,需要查看一下目录的acls权限:

hadoop fs -getfacl /user/hive/warehouse
  • 1

这里需要注意的是,acl权限中的mask权限,它限制了acl user、acl group,以及group的最高权限,但它不影响owner的权限。

假设mask权限为r–,则除了owner,为当前目录添加的acl用户、acl用户组、group,最高的权限只能是r–。

所以为了新用户的赋权,最好先修改一下mask值,这里开放了rwx所有权限。

hadoop fs -setfacl -R -m mask::rwx /user/hive/warehouse
  • 1

然后授权hue用户和hue用户组对warehouse目录的rwx操作权限。

#授予hue用户对warehouse文件夹rwx权限
hadoop fs -setfacl -m user:hue:rwx /user/hive/warehouse
#授予hue用户组对warehouse文件夹rwx权限
hadoop fs -setfacl -m group:hue:rwx /user/hive/warehouse
# 查看权限设置
hadoop fs -getfacl /user/hive/warehouse
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

最后,需要注意default acl的设置,在warehouse目录下新创建的目录或文件,默认会继承default acl所设置的权限。

#设置默认的ACL Mask权限为rwx
hadoop fs -setfacl -R -m default:mask::rwx /user/hive/warehouse
#设置hue用户在当前文件夹下创建的新文件,默认的ACL权限为rwx
hadoop fs -setfacl -R -m default:user:hue:rwx /user/hive/warehouse
#设置hue用户组在当前文件夹下创建的新文件,默认的ACL权限为rwx
hadoop fs -setfacl -R -m default:group:hue:rwx /user/hive/warehouse
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

这样的话,使用hue用户、hue用户组创建的表文件,自动会拥有rwx的权限。当然,你也可以一次性设置所有用户、用户组的default acl权限,而不是单独为每个用户进行设置,这样可以避免default acl设置过多的情况。

#设置所有用户在当前文件夹下创建新文件时,默认的ACL权限为rwx
hadoop fs -setfacl -R -m default:user::rwx /user/hive/warehouse
#设置所有用户组在当前文件夹下创建新文件时,默认的ACL权限为rwx
hadoop fs -setfacl -R -m default:group::rwx /user/hive/warehouse
  • 1
  • 2
  • 3
  • 4

后话

如果有帮助的,记得点赞、关注。在公众号《数舟》中,可以免费获取专栏《数据仓库》配套的视频课程、大数据集群自动安装脚本,并获取进群交流的途径。

我所有的大数据技术内容也会优先发布到公众号中。如果对某些大数据技术有兴趣,但没有充足的时间,在群里提出,我为大家安排分享。

公众号自取:

公众号

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/673582
推荐阅读
相关标签
  

闽ICP备14008679号