What is ACL

Hadoop中的ACL与Linux中的ACL机制基本相同,都是用于为文件系统提供更精细化的权限控制。

参考 HDFS ACLs: Fine-Grained Permission for HDFS Files in Hadoop

开启ACLs

默认情况下ACLs是关闭的,想要开启此功能需要在hdfs-site.xml的配置项里找到 dfs.namenode.acls.enabled把属性设为 true才可以。 重要:Namenode节点必须要设定的用户或用户组
<property>
<name>dfs.namenode.acls.enabled</name>
<value>true</value>
</property>

getfacl

getfacl用于查看一个文件/目录的ACL状态,例如:

 1 [root@ecs1 tao]# hadoop dfs -getfacl /user/tao
 2 DEPRECATED: Use of this script to execute hdfs command is deprecated.
 3 Instead use the hdfs command for it.
 4
 5 # file: /user/tao
 6 # owner: tao
 7 # group: supergroup
 8 user::rwx
 9 group::rwx
10 other::rwx

setfacl

基本用法

假设,我们有一个HDFS目录/user/tao/xt-data,它目前的权限为drwxrwxr-x tao supergroup。我希望让另一个用户Hbase(不属于任何group)对该目录有rwx的权限,那么可以如下操作:

hdfs dfs -setfacl [-R] [-b|-k -m|-x <acl_spec> <path>]|[--set <acl_spec> <path>]
<!-- COMMAND OPTIONS
<path>: 路径
-R: 遍历路径里的所有文件。
-b: 撤销除了基本用户和组权限以外的所有权限。
-k: 撤销默认的ACL设置。
-m: 添加新的权限来使用此ACL。不影响现有权限。
-x: 只撤销指定的ACL。
<acl_spec>: 逗号分隔的ACL权限列表。
--set: 使用该选项指定的路径完全取代现有的ACL。之前的ACL将不再适用。
-->

  

[tao@ecs3 ~]$ hadoop dfs -setfacl -m user:hbase:rwx /user/tao/xt-data[tao@ecs3 ~]$ hadoop dfs -getfacl /user/tao/xt-data
DEPRECATED: Use of this script to execute hdfs command is deprecated.
Instead use the hdfs command for it.# file: /user/tao/xt-data
# owner: tao
# group: supergroup
user::rwx
user:hbase:rwx
group::r-x
mask::rwx
other::r-x[tao@ecs3 ~]$ su[root@ecs3 tao]# sudo -u hbase hadoop dfs -mkdir /user/tao/xt-data/testDir

[root@ecs3 tao]# sudo -u hbase hadoop dfs -ls /user/tao/xt-data
DEPRECATED: Use of this script to execute hdfs command is deprecated.
Instead use the hdfs command for it.Found 1 items
drwxr-xr-x   - hbase supergroup          0 2015-05-22 16:33 /user/tao/xt-data/testDir
[root@ecs3 tao]# 

可以看到,现在用户hbase可以在/user/tao/xt-data中新建一个目录testDir了。那么,这个新建的目录的权限是什么呢?

 1 [root@ecs3 tao]# hadoop dfs -getfacl /user/tao/xt-data/testDir
 2 DEPRECATED: Use of this script to execute hdfs command is deprecated.
 3 Instead use the hdfs command for it.
 4
 5 # file: /user/tao/xt-data/testDir
 6 # owner: hbase
 7 # group: supergroup
 8 user::rwx
 9 group::r-x
10 other::r-x

 

可以看到,这个新建的目录与其他普通的目录在权限是一样的。如果想使得新建的目录/文件的ACL也满足我们的要求,可以使用default acl来实现。

关于权限标志位的顺序: 在命令hadoop dfs -setfacl -m user:hbase:rwx /user/tao/xt-data中,权限标志位rwx的顺序不能改变,否则会报错:-setfacl: Invalid permission in
正确的写法有: rwx, r-x, -r-, -rx等;
错误的写法有:wrxw-x等。

Default ACL

可以为某个目录设置一个默认的ACL权限,使得以后在该目录中新建文件或者子目录时,新建的文件/目录的ACL权限都是之前设置的default ACLs。

例如,现在已经有了一个HDFS目录/user/tao,其当前的ACL状态为:

[root@ecs1 tao]# hadoop dfs -getfacl /user/tao
# file: /user/tao
# owner: tao
# group: supergroup
user::rwx
group::rwx
other::rwx

我们想将其default acl权限设置为user:hbase:rwx,用命令:

[root@ecs1 tao]# sudo -u tao hadoop dfs -setfacl -m default:user:hbase:rwx /user/tao

[root@ecs1 tao]# hadoop dfs -getfacl /user/tao
# file: /user/tao
# owner: tao
# group: supergroup
user::rwx
group::rwx
other::rwx
default:user::rwx
default:user:hbase:rwx
default:group::rwx
default:mask::rwx
default:other::rwx

检查是否生效:

 1 [root@ecs1 tao]# sudo -u tao hadoop dfs -mkdir /user/tao/testDir
 2
 3 [root@ecs1 tao]# hadoop dfs -getfacl /user/tao/testDir
 4 # file: /user/tao/testDir
 5 # owner: tao
 6 # group: supergroup
 7 user::rwx
 8 user:hbase:rwx  #effective:r-x
 9 group::rwx  #effective:r-x
10 mask::r-x
11 other::r-x
12 default:user::rwx
13 default:user:hbase:rwx
14 default:group::rwx
15 default:mask::rwx
16 default:other::rwx

转载于:https://www.cnblogs.com/royfans/p/7326859.html

HDFS涉及ACLs的命令相关推荐

  1. HDFS权限设置 \ HDFS涉及ACLs的命令

    本文主要参考:https://www.cnblogs.com/royfans/p/7326859.html https://www.cppentry.com/bencandy.php?fid=115& ...

  2. HDFS的访问方式之HDFS shell的常用命令

    场景 CentOS7上搭建Hadoop集群(入门级): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/119335883 在上面搭 ...

  3. 2021年大数据Hadoop(九):HDFS的高级使用命令

    2021大数据领域优质创作博客,带你从入门到精通,该博客每天更新,逐渐完善大数据各个知识体系的文章,帮助大家更高效学习. 有对大数据感兴趣的可以关注微信公众号:三帮大数据 目录 HDFS的高级使用命令 ...

  4. Hadoop HDFS概念学习系列之shell命令使用HDFS的一些其他命令(十九)

    其他相关命令还包括以下这些: NameNode  -format :  格式化DFS文件系统 secondaryNameNode :   运行DFS的SecndaryNameNode进程 NameNo ...

  5. shell 进入hadoop_Hadoop关于HDFS的基本操作(Shell命令)

    在这里我给大家继续分享一些关于hdfs分布式文件的经验哈,其中包括一些hdfs的基本的shell命令的操作,再加上hdfs java程序设计.在前面我已经写了关于如何去搭建hadoop这样一个大数据平 ...

  6. hdfs上文件常用命令

    hdfs上文件常用命令 为了每次执行Hadoop的时候,不必须要前者加上hadoop的安装的绝对路径,要做的事情就是将其安装路径加入到PATH中,这样就可以直接执行hadoop命令. 如下: vim ...

  7. hadoop fs –ls /hbase 无内容_Hadoop学习---HDFS的常用shell命令详解

    注意:访问hdfs系统的指令 hadoop dfs --- 已过时 hadoop fs -- 使用范围更大 hdfs dfs --范围相对较小hadoop fs 和 hdfs dfs之间没有太大的区别 ...

  8. HDFS系列(3) | HDFS的Shell常用命令大全

    此次更新的的博文是关于HDFS的shell的常用命令,希望大家能够喜欢 目录 一. 基本语法 二. 命令大全 三. 常用命令实操 1. 常用命令及其作用对比表 2. 常用命令的实际操作 一. 基本语法 ...

  9. HDFS文件系统基本文件命令、编程读写HDFS

    HDFS是一种文件系统,存储着Hadoop应用将要处理的数据,类似于普通的Unix和linux文件系统,不同的是他是实现了google的GFS文件系统的思想,是适用于大规模分布式数据处理相关应用的.可 ...

最新文章

  1. 从源码分析DEARGUI之add_slider_float-4和add_slider_int-4
  2. mybatis$和#的区别
  3. 2017.9.14 仪仗队 思考记录
  4. 190816每日一句
  5. Android 汽车电子功能安全模块化设计思路
  6. 联想电脑进入BIOS曾经走过的“坑”
  7. 各种路由器接口与连接方法
  8. 最佳实践:MySQL CDC 同步数据到 ES
  9. luogu P5320 [BJOI2019]勘破神机
  10. 【算法】独立任务最优调度问题
  11. 幼儿体能五项技能测试软件,卓艺湖畔幼儿园教师五项体能培训--器械游戏分享...
  12. 【转】专家推荐 13个优秀的UML建模工具软件
  13. 【随机过程】13 - 过滤泊松的应用
  14. 全球与中国云监控软件市场深度研究分析报告(2021)
  15. SATA协议OOB随笔
  16. The 2021 ICPC Asia Taipei Regional Programming Contest
  17. mqtt haproxy 代理及负载搭建
  18. 西安国微EDA研发中心正式启动运营;2020上半年10大典型工业网络安全事件 | 美通企业日报...
  19. c:set -----------JSTL
  20. 【考研政治】史纲第一章思维导图(完全按照肖书结构+个人精简记忆)

热门文章

  1. 极光服务器维护,极光世界服务器维护更新公告 V10.650内容一览
  2. PHP中SQL注入与跨站攻击的防范
  3. text-shadow 详解及示例
  4. 文献解读:中国黑龙江省蜱虫传播病毒的病毒学分析
  5. OpenCV在笔记本上打不开摄像头的问题
  6. 数字革命将重构证券商业生态,券商大咖齐聚一堂探讨应变之道!
  7. SwiftUI 入门之clipped是什么如何用
  8. 计算机的硬盘 内存在哪查到,dos下通过wmic命令查看硬盘和内存/CPU信息(windows自带命令查看硬件信息)...
  9. UE4和VR的项目流程(新手经验)
  10. 三角函数与反三角函数的关系及图像