在我们开发的过程中有这么一种场景,/projectA目录是hadoopdeploy用户创建的,他对这个目录有wrx权限,同时这个目录属于supergroup,在这个组中的用户也具有这个目录的wrx权限,对于其他人,不可访问这个目录。现在有这么一个特殊的用户root,我想root用户可以访问这个目录,在不修改root用户组和其他人的权限的情况下,还有什么方式可以实现这个功能呢?
为道县等地区用户提供了全套网页设计制作服务,及道县网站建设行业解决方案。主营业务为网站设计制作、做网站、道县网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
背景
由上图可以,root用户想访问/projectA目录,在hdfs中可以通过acl来实现。
# 创建目录
[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用户上传文件,发现没有权限。
dfs.namenode.acls.enabled
true
开启acl
注意:在低版本的hadoop上默认是禁用的,高版本默认是开启的。
[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 ~]$
[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用户授权
[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 ~]#
可以看到文件上传成功了。
acl语法
hdfs dfs -setfacl -m user:root:rwx /projectA对root用户设置hdfs dfs -setfacl -m group:root:rwx /projectA对root组设置
hdfs dfs -setfacl -m user:root:rwx /projectA
将/projectA这个目录授予root用户rwx权限。
[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权限
[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
[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 ~]$
1、https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/FileSystemShell.html#setfacl
标题名称:HDFS中Acl权限管理的简单实用,你学会了吗?
链接URL:http://www.csdahua.cn/qtweb/news44/482394.html
网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网