当前位置:首页 >娱乐 >HDFS中Acl权限管理的简单实用,你学会了吗? 他对这个目录有wrx权限

HDFS中Acl权限管理的简单实用,你学会了吗? 他对这个目录有wrx权限

2024-05-16 03:01:09 [百科] 来源:避面尹邢网

HDFS中Acl权限管理的权限简单实用,你学会了吗?

作者:huan1993 数据库 其他数据库 对于其他人,管理不可访问这个目录。现在有这么一个特殊的简单实用户root,我想root用户可以访问这个目录,用学在不修改root用户组和其他人的权限权限的情况下,还有什么方式可以实现这个功能呢?

1、管理背景

在我们开发的简单实过程中有这么一种场景,/projectA目录是用学hadoopdeploy用户创建的,他对这个目录有wrx权限,权限同时这个目录属于supergroup,管理在这个组中的简单实用户也具有这个目录的wrx权限,对于其他人,用学不可访问这个目录。现在有这么一个特殊的权限用户root,我想root用户可以访问这个目录,管理在不修改root用户组和其他人的简单实权限的情况下,还有什么方式可以实现这个功能呢?

HDFS中Acl权限管理的简单实用,你学会了吗? 他对这个目录有wrx权限

背景

HDFS中Acl权限管理的简单实用,你学会了吗? 他对这个目录有wrx权限

由上图可以,root用户想访问/projectA目录,在hdfs中可以通过acl来实现。

HDFS中Acl权限管理的简单实用,你学会了吗? 他对这个目录有wrx权限

2、环境准备

# 创建目录[hadoopdeploy@hadoop01 ~]$ hdfs dfs -mkdir /projectA# 列出根目录下的文件夹[hadoopdeploy@hadoop01 ~]$ hdfs dfs -ls /Found 1 itemsdrwxr-xr-x   - hadoopdeploy supergroup          0 2023-05-24 20:35 /projectA# 将 /projectA 目录的权限修改成 770, 即其他人没有这个目录的访问权限[hadoopdeploy@hadoop01 ~]$ hdfs dfs -chmod 770 /projectA# 再次查看发现修改成功[hadoopdeploy@hadoop01 ~]$ hdfs dfs -ls /Found 1 itemsdrwxrwx---   - hadoopdeploy supergroup          0 2023-05-24 20:35 /projectA[hadoopdeploy@hadoop01 ~]$

环境准备

从上述代码中可知,我们创建了一个/projecetA的目录,且给这个目录的权限为770,那么其他人对这个目录应该是没有访问权限的。 通过上述图片可知,我们用root用户上传文件,发现没有权限。

3、开启acl权限

3.1 修改hdfs-site.xml

<!-- 开启acl访问控制权限,默认就开启了 --><property>    <name>dfs.namenode.acls.enabled</name>    <value>true</value></property>

开启acl

注意:在低版本的hadoop上默认是禁用的,高版本默认是开启的。

3.2 重启hdfs集群

[hadoopdeploy@hadoop01 ~]$ stop-dfs.shStopping namenodes on [hadoop01]Stopping datanodesStopping secondary namenodes [hadoop03][hadoopdeploy@hadoop01 ~]$ start-dfs.shStarting namenodes on [hadoop01]Starting datanodesStarting secondary namenodes [hadoop03][hadoopdeploy@hadoop03 ~]$

3.3 使用acl给root用户授权

[hadoopdeploy@hadoop01 ~]$ hdfs dfs -setfacl -m user:root:rwx /projectA[hadoopdeploy@hadoop01 ~]$ hdfs dfs -getfacl /projectA# file: /projectA# owner: hadoopdeploy# group: supergroupuser::rwxuser:root:rwxgroup::rwxmask::rwxother::---[hadoopdeploy@hadoop01 ~]$

使用acl给root用户授权

3.4 使用 root 用户测试文件上传

[root@hadoop01 ~]# hdfs dfs -put anaconda-ks.cfg /projectA[root@hadoop01 ~]# hdfs dfs -ls /projectAFound 1 items-rw-r--r--   2 root supergroup       1151 2023-05-24 21:10 /projectA/anaconda-ks.cfg[root@hadoop01 ~]#

可以看到文件上传成功了。

4、acl的一些简单命令

acl语法

hdfs dfs -setfacl -m user:root:rwx /projectA对root用户设置hdfs dfs -setfacl -m group:root:rwx /projectA对root组设置

4.1 设置acl

hdfs dfs -setfacl -m user:root:rwx /projectA

将/projectA这个目录授予root用户rwx权限。

4.2 查看acl

[hadoopdeploy@hadoop01 ~]$ hdfs dfs -getfacl /projectA# file: /projectA# owner: hadoopdeploy# group: supergroupuser::rwxuser:root:rwxgroup::rwxmask::rwxother::---[hadoopdeploy@hadoop01 ~]$ hdfs dfs -ls /Found 1 itemsdrwxrwx---+  - hadoopdeploy supergroup          0 2023-05-24 21:10 /projectA[hadoopdeploy@hadoop01 ~]$

drwxrwx---+ 这个+表示有acl权限

4.3 移除某个用户的acl

[hadoopdeploy@hadoop01 ~]$ hdfs dfs -setfacl -x user:root /projectA[hadoopdeploy@hadoop01 ~]$ hdfs dfs -getfacl /projectA# file: /projectA# owner: hadoopdeploy# group: supergroupuser::rwxgroup::rwxmask::rwxother::---[hadoopdeploy@hadoop01 ~]$

移除某个用户的acl

4.4 删除该目录所有的acl权限

[hadoopdeploy@hadoop01 ~]$ hdfs dfs -setfacl -b /projectA[hadoopdeploy@hadoop01 ~]$ hdfs dfs -getfacl /projectA# file: /projectA# owner: hadoopdeploy# group: supergroupuser::rwxgroup::rwxother::---[hadoopdeploy@hadoop01 ~]$

5、参考链接

1、https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/FileSystemShell.html#setfacl

责任编辑:武晓燕 来源: 今日头条 权限管理hdfsacl

(责任编辑:娱乐)

    推荐文章
    热点阅读