HDFS权限管控

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>

普通权限管控

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

# 创建用户组big
groupadd big
# 创建用户big,并指定用户组为big
useradd -m -g big big
# 检测用户的创建情况
id big

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

hadoop fs -mkdir /big

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

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

hadoop fs -chmod o+r /big

如果是单一用户,较为推荐的是直接更改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

ACLs权限管控

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

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

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

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

hadoop fs -getfacl /user/hive/warehouse

这里需要注意的是,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

然后授权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

最后,需要注意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

这样的话,使用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

后话

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

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

公众号自取:

公众号

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

桥路丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值