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

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


注意: 在低版本的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 ~]$

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的一些简单命令


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

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 ~]$

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

hdfs中acl权限管理的简单实用相关推荐

  1. 前后端分离中的权限管理思路

    在传统的前后端不分的开发中,权限管理主要通过过滤器或者拦截器来进行(权限管理框架本身也是通过过滤器来实现功能),如果用户不具备某一个角色或者某一个权限,则无法访问某一个页面. 但是在前后端分离中,页面 ...

  2. 7.SpringSecurity中的权限管理

    SpringSecurity中的权限管理   SpringSecurity是一个权限管理框架,核心是认证和授权,前面已经系统的给大家介绍过了认证的实现和源码分析,本文重点来介绍下权限管理这块的原理. ...

  3. java linux 权限管理_权限管理java实现(源于Linux中的权限管理算法)

    这个帖子由来已久吧,我也是到处搜到的,然后仔细学习,果然博大精深,然后加强点弄点自己的东西 我已声明 部分转载!! 向大家介绍一种很不错,也是Linux中的权限管理算法. 定义a^b为:a的b次方 假 ...

  4. Android中MaterialSearchView(搜索框)的简单实用

    Android中MaterialSearchView(搜索框)的简单实用 收搜框架有好多,动画效果满炫酷的就是代码太多,没发抽取他的搜索功能,而这个却比较好用些,直接从代码里面抠出来一个简单实现搜索功 ...

  5. Linux 系统中的权限管理

    ### 一.权限查看及读取  ### # 1.权限查看 #         ls -l     file        ##查看文件权限 ls -ld    dir        ##查看目录权限 # ...

  6. 六.Linux系统中的权限管理

    1.权限查看及读取 权限查看 ls -l file #查看文件权限 ls -ld dir #查看目录权限 权限的读取 文件的属性被叫做文件的元数据(meta data) 一种元数据用1个byte来记录 ...

  7. 五、Linux系统中的权限管理

    权限的查看和读取 1.权限查看 ls -l file        ##查看文件权限 ls -ld dir        ##查看目录权限 2.权限的读取 文件的属性被叫做文件的元数据(meta da ...

  8. 超级账本Fabric中的权限管理和策略

    权限管理是区块链网络十分重要的功能,负责控制某个身份在某个场景下是否允许采取某个操作(如读写某个资源). 超级账本 Fabric 项目通过策略(Policy)来灵活指定各场景下的操作权限. 策略应用场 ...

  9. RH124(6)----Linux系统中的权限管理

    文章目录 一.权限查看及读取 1.权限查看 2.权限的读取 二.普通权限的类型及作用 1.用户对文件的身份 2.权限位 3.用户身份匹配 4.权限类型 三.设定普通权限的方法 四.系统默认权限设定 五 ...

最新文章

  1. 我们学校也在使用IPV6
  2. python游戏猫咪藏在哪个房间_tes体系风格已经定型,EZ加猫咪似乎成唯一解,在藏还是真没了?...
  3. android 软键盘 状态,Android监听软键盘状态
  4. python爬取京东手机参数_python抓取京东小米8手机配置信息
  5. 【WC2008】【BZOJ1271】秦腾与教学评估(二分,前缀和,奇偶性乱搞)
  6. 三角函数π/2转化_浅谈三角函数导数综合题(1)
  7. android opengl把经纬度点用红色点显示在3d地球上,在OpenGL中使用正确的经度和纬度在全球范围内渲染点...
  8. android和夜神模拟器哪个好,天天模拟器和夜神安卓模拟器哪个好 两者功能对比...
  9. 【LeetCode】把数字翻译成字符串最长不含重复字符的子字符串
  10. 卸载计算机更新程序包,KB4343669更新包无法卸载的解决方案
  11. 文献(5): 单细胞转录组揭示人类纤维化皮肤病中成纤维细胞的异质性
  12. EXCEL2016设置下拉选项,图文说明
  13. 测试微信号连接的开发的步骤
  14. Android处理二维码扫码枪数据
  15. 平安人寿“内鬼”泄露近4万条公民信息
  16. 爱阅书香之书源制作 POST请求方式
  17. windwos powershell
  18. js onmousemove使用注意:进入onmousemove不代表移动鼠标
  19. 仓库是时候实施物联网了吗
  20. 【并发】线程同步——锁Lock与synchronized比较

热门文章

  1. 今天的你,微笑了吗?
  2. 创业团队如何进行股权分配
  3. 【HMS Core】【FAQ】【Health Kit】运动健康服务常见错误码合集 403、401、1001、20023
  4. M3U8 文件格式简介
  5. SEO工作,猝不及防的问题怎么解决?
  6. 灵动微电子32位单片机MM32F0144C4Q引脚兼容替换MM32F031K8U6
  7. Android直播技术之(三) : 推流
  8. 定额发票识别易语言代码
  9. 英语专业应报考计算机二级哪一科目,计算机二级科目怎么选 计算机二级有哪些科目...
  10. 4.1虎牙客户端实习一面准备与实际的面试情况