hdfs中acl权限管理的简单实用

您所在的位置:网站首页 linux查看hdfs文件目录 hdfs中acl权限管理的简单实用

hdfs中acl权限管理的简单实用

2023-06-12 19:34| 来源: 网络整理| 查看: 265

1、背景

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

2、环境准备 # 创建目录 [hadoopdeploy@hadoop01 ~]$ hdfs dfs -mkdir /projectA # 列出根目录下的文件夹 [hadoopdeploy@hadoop01 ~]$ hdfs dfs -ls / Found 1 items drwxr-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 items drwxrwx--- - hadoopdeploy supergroup 0 2023-05-24 20:35 /projectA [hadoopdeploy@hadoop01 ~]$

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

3、开启acl权限 3.1 修改hdfs-site.xml dfs.namenode.acls.enabled true

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

3.2 重启hdfs集群 [hadoopdeploy@hadoop01 ~]$ stop-dfs.sh Stopping namenodes on [hadoop01] Stopping datanodes Stopping secondary namenodes [hadoop03] [hadoopdeploy@hadoop01 ~]$ start-dfs.sh Starting namenodes on [hadoop01] Starting datanodes Starting 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: supergroup user::rwx user:root:rwx group::rwx mask::rwx other::--- [hadoopdeploy@hadoop01 ~]$

使用acl给root用户授权

3.4 使用 root 用户测试文件上传 [root@hadoop01 ~]# hdfs dfs -put anaconda-ks.cfg /projectA [root@hadoop01 ~]# hdfs dfs -ls /projectA Found 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: supergroup user::rwx user:root:rwx group::rwx mask::rwx other::--- [hadoopdeploy@hadoop01 ~]$ hdfs dfs -ls / Found 1 items drwxrwx---+ - 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: supergroup user::rwx group::rwx mask::rwx other::--- [hadoopdeploy@hadoop01 ~]$

移除某个用户的acl

4.4 删除该目录所有的acl权限 [hadoopdeploy@hadoop01 ~]$ hdfs dfs -setfacl -b /projectA [hadoopdeploy@hadoop01 ~]$ hdfs dfs -getfacl /projectA # file: /projectA # owner: hadoopdeploy # group: supergroup user::rwx group::rwx other::--- [hadoopdeploy@hadoop01 ~]$ 5、参考链接

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



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3