【HDFS】权限管理

这篇具有很好参考价值的文章主要介绍了【HDFS】权限管理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

概述

Hadoop分布式文件系统(HDFS)为共享大部分POSIX模型的文件和目录实现权限模型。每个文件和目录都与一个所有者和一个组相关联。该文件或目录对作为所有者的用户,作为该组成员的其他用户以及对所有其他用户具有单独的权限。对于文件需要r权限才能读取文件,而w权限才能写入或附加到文件。对于目录,需要r权限才能列出目录的内容,需要w权限来创建或删除文件或目录,并且需要x权限来访问目录的子级

  • 客户端在进行每次文件操时,系统会从用户身份认证数据访问授权两个环节进行验证。

  • 客户端的操作请求会首先通过用户身份验证机制来获得“凭证”(类似于身份证书),HDFS根据此“凭证”分辨出合法的用户名;

  • 然后HDFS再据此查看该用户所访问的数据是否已经授权,或者说该身份凭证是否具有权限做这件事。

  • 一旦这个流程中的某个环节出现异常,客户端的操作请求便会失败。

【HDFS】权限管理

UGO权限管理

拥有者、所在组、其他用户组

  • HDFS文件权限与Linux/Unix系统的UGO模型类似,简单描述为:每个文件和目录都与一个拥有者和一个组相关联。

  • USER(文件的所有者):一般是创建该文件的用户,对该文件具有完全的权限。

  • GROUP(拥有者所在的组):和文件所有者属于同一组的用户。

  • OTHER(其他用户组):其他用户组的用户。

【HDFS】权限管理

读、写、执行权限

  • HDFS文件权限也细分为:读权限(r)、写权限(w)、执行权限(x)。

  • 在HDFS中,对于文件,需要r权限才能读取文件,而w权限才能写入或追加到文件。没有x可执行文件的概念。

  • 在HDFS中,对于目录,需要r权限才能列出目录的内容,需要w权限才能创建或删除文件或目录,并且需要x权限才能访问目录的子级。

【HDFS】权限管理

  • 读权限(r)、写权限(w)、执行权限(x)可以使用数字表示,也可以使用字母表示。

【HDFS】权限管理

umask权限掩码

  • 与Linux/Unix系统类似,HDFS也提供了umask掩码,用于设置在HDFS中默认新建的文件和目录权限位

  • 默认umask值有属性fs.permissions.umask-mode指定,默认值022。

  • 创建文件和目录时使用的umask,默认的权限就是

      		目录:777-022=755,也就是drwxr-xr-x
    
      		文件:777-022=755,因为HDFS中文件没有x执行权限的概念,所以是:-rw-r--r--
    

UGO权限相关命令

#变更目录或文件的权限 可以使用数字 也可以使用字母 u g o a + - r w x
hadoop fs -chmod [-R] 777 /user/itcast/foo
hadoop fs -chmod [-R] u+x,o-x /user/itcast/foo
#变更目录或文件的属主或用户组
hadoop fs -chown [-R] itcast /user/itcast/foo
hadoop fs -chown [-R] itcast:ogroup /user/itcast/foo
#变更用户组
hadoop fs -chgrp [-R] group1 /user/itcast/foo

Web页面修改UGO权限

  • Hadoop3.0之后,支持在HDFS Web页面上使用鼠标修改。

【HDFS】权限管理

Group Mapping组映射

  • 在通过用户身份认证拿到用户名后之后,NameNode还需要通过用户组映射服务获取该用户所对应的用户组列表,用于后期的用户组权限校验

  • HDFS中用户所属组的确认工作需要通过外部的用户组映射(Group Mapping)服务来获取。用户到组的映射可以使用系统自带的方案(使用NameNode服务器上的用户组系统),也可以通过其他实现类似功能的插件(LDAP、Ranger等)方式来代替。

基于Linux/Unix系统的用户和用户组

  • Linux/Unix系统上的用户和用户组信息存储在/etc/passwd和/etc/group文件中

  • 默认情况下,HDFS会通过调用外部的 Shell 命令来获取用户的所有用户组列表。

  • /etc/passwd

  • 一行记录对应着一个用户,每行记录又被冒号(:)分隔为7个字段,其格式和具体含义如下:

    用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell

    其中组标识号字段记录的是用户所属的用户组。它对应着/etc/group文件中的一条记录。

【HDFS】权限管理

  • /etc/group

  • 文件中每一行各代表一个用户组,每行记录又被冒号(:)分隔为4个字段,其格式和具体含义如下:

    组名:密码:GID:该用户组中的用户列表

    其中最后一个字段列出每个群组包含的所有用户。需要注意的是,如果该用户组是这个用户的初始组,则该用户不会写入这个字段,可以这么理解,该字段显示的用户都是这个用户组的附加用户。

【HDFS】权限管理

  • 此方案的优点在于组映射服务十分稳定,不易受外部服务的影响。

  • 但是用户和用户组管理涉及到root权限等,同时会在服务器上生成大量的用户组,后续管理,特别是自动化运维方面会有较大影响。

ACL权限管理

  • ACL是Access Control List(访问控制列表)的缩写,ACL提供了一种方法,可以为特定的用户或组设置不同的权限,而不仅仅是文件的所有者和文件的组

ACL Shell 命令

hadoop fs -getfacl [-R] <path>
#显示文件和目录的访问控制列表(ACL)。如果目录具有默认ACL,则getfacl还将显示默认ACL。
hadoop fs [generic options] -setfacl [-R] [{-b|-k} {-m|-x <acl_spec>} <path>]|[--set <acl_spec> <path>]
#设置文件和目录的访问控制列表(ACL)。
hadoop fs -ls <args>
#ls的输出将在带有ACL的任何文件或目录的权限字符串后附加一个'+'字符。

ACL操作实战

  • 使用root超级用户在HDFS上创建一个名为itheima的文件夹
hadoop fs -mkdir /itheima
  • 使用普通用户allenwoon去操作/itheima 发现没有权限
[allenwoon@node1 ~]$ echo 1 >> 1.txt
[allenwoon@node1 ~]$ hadoop fs -put 1.txt /itheima
put: Permission denied: user=allenwoon, access=WRITE, inode="/itheima":root:supergroup:drwxr-xr-x
  • 接下来使用ACL给allenwoon用户单独添加权限 而/itheima文件夹本身权限不变
hadoop fs -setfacl -m user:allenwoon:rwx /itheima
setfacl: The ACL operation has been rejected.  Support for ACLs has been disabled by setting dfs.namenode.acls.enabled to false.
  • 发现报错 原因是ACL功能默认是关闭的。

  • 在hdfs-site.xml中设置dfs.namenode.acls.enabled=true 开启ACL,重启HDFS集群。

  • 设置成功之后查看ACL权限文章来源地址https://www.toymoban.com/news/detail-406362.html

hadoop fs -setfacl -m user:allenwoon:rwx /itheima
hadoop fs -getfacl /itheima
[root@node1 ~]# hadoop fs -getfacl /itheima
# file: /itheima
# owner: root
# group: supergroup
user::rwx
user:allenwoon:rwx     发现allenwoon权限配置成功
group::r-x
mask::rwx
other::r-x
  • 再使用普通用户allenwoon去操作,发现可以成功了
  • 如果切换其他普通用户比如itcast 发现还是无法操作
[itcast@node2 ~]$ echo 2 >> 2.txt
[itcast@node2 ~]$ hadoop fs -put 2.txt /itheima
put: Permission denied: user=itcast, access=WRITE, inode="/itheima":root:supergroup:drwxrwxr-x
  • ACL其他操作命令
1、带有ACL的任何文件或目录的权限字符串后附加一个'+'字符
[root@node1 ~]# hadoop fs -ls /
Found 5 items
drwxr-xr-x   - root supergroup          0 2021-01-06 20:59 /data
drwxr-xr-x   - root supergroup          0 2020-12-31 11:59 /itcast
drwxrwxr-x+  - root supergroup          0 2021-01-07 19:38 /itheima
drwx------   - root supergroup          0 2020-12-31 11:56 /tmp
drwxr-xr-x   - root supergroup          0 2020-12-31 11:56 /user
2、删除指定的ACL条目
hadoop fs -setfacl -x user:allenwoon /itheima
3、删除基本ACL条目以外的所有条目。保留用户,组和其他条目以与权限位兼容。
hadoop fs -setfacl -b /itheima

4、设置默认的ACl权限,以后在该目录中新建文件或者子目录时,新建的文件/目录的ACL权限都是之前设置的default ACLs
[root@node1 ~]# hadoop fs -setfacl -m default:user:allenwoon:rwx /itheima
[root@node1 ~]# hadoop fs -getfacl /itheima                              
# file: /itheima
# owner: root
# group: supergroup
user::rwx
group::r-x
other::r-x
default:user::rwx
default:user:allenwoon:rwx
default:group::r-x
default:mask::rwx
default:other::r-x
5、删除默认ACL权
hadoop fs -setfacl -k /itheima 
6、--set: 完全替换ACL,丢弃所有现有条目。 acl_spec必须包含用户,组和其他条目,以便与权限位兼容。
hadoop fs -setfacl --set user::rw-,user:hadoop:rw-,group::r--,other::r-- /file

到了这里,关于【HDFS】权限管理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Hadoop的分布式文件存储系统HDFS组件的使用

    存储整个HDFS集群的元数据(metaData) —— 整个集群中存储的目录和文件的索引 管理整个HDFS集群 接收客户端的请求 负责节点的故障转移 存储数据,是以block块的形式进行数据的存放。 默认情况下block块的大小是128M。 blocksize大小的计算公式: 寻址时间:下载文件时找到文件

    2024年02月09日
    浏览(52)
  • Hadoop HDFS分布式文件系统(介绍以及基础操作命令)

    目录 一、为什么需要分布式存储? 二、分布式的基础架构分析  三、HDFS基础架构 1.HDFS简介 四、HDFS集群启停命令 1.一键启停脚本 2.单进程启停 五、HDFS基本操作命令 1.创建文件夹  2.查看指定目录下内容  3.上传文件到HDFS指定目录下  4.查看HDFS文件内容 5.下载HDFS文件  6.拷贝

    2024年02月05日
    浏览(36)
  • Hadoop大数据从入门到实战(二)分布式文件系统HDFS

    头歌实践教学平台 教学课堂 大数据从入门到实战 - 第2章 分布式文件系统HDFS 任务描述 本关任务:使用 Hadoop 命令来操作分布式文件系统。 编程要求 在右侧命令行中启动 Hadoop ,进行如下操作。 在 HDFS 中创建 /usr/output/ 文件夹; 在本地创建 hello.txt 文件并添加内容:“ HDFS的

    2024年02月12日
    浏览(33)
  • 部署HDFS集群(完全分布式模式、hadoop用户控制集群、hadoop-3.3.4+安装包)

    目录 前置 一、上传解压 (一 )上传 (二)解压 二、修改配置文件 (一)配置workers文件 (二)配置hadoop-env.sh文件 (三)配置core-site.xml文件 (四)配置hdfs-site.xml文件 三、分发到hp2、hp3, 并设置环境变量 (一)准备数据目录    (二)配置环境变量 四、创建数据目录,并

    2024年04月14日
    浏览(48)
  • Hadoop学习1:概述、单体搭建、伪分布式搭建

    Hadoop: 分布式系统基础架构   解决问题: 海量数据存储、海量数据的分析计算   官网: https://hadoop.apache.org/   HDFS(Hadoop Distributed File System): 分布式文件系统,用于存储数据   Hadoop的默认配置【core-site.xml】: https://hadoop.apache.org/docs/r3.3.6/hadoop-project-dist/hadoop-common/c

    2024年03月15日
    浏览(41)
  • 分布式文件系统HDFS

    分布式文件系统 把文件分布存储到多个计算机节点 上,通过网络实现文件在多台主机上进行分布式存储的文件系统。 分布式文件系统有两大模式: Remote Access Model: 非本地文件不会复制到本地,所以对非本地文件的读取和修改,利用RPC进行。 Upload/ Download Model:所有非本地文

    2024年02月09日
    浏览(36)
  • 2. 分布式文件系统 HDFS

    问题一:如果一个文件中有 10 个数值,一行一个,并且都可以用 int 来度量。现在求 10 个数值的和 思路: 逐行读取文件的内容 把读取到的内容转换成 int 类型 把转换后的数据进行相加 输出最后的一个累加和 问题二:10000 个文件,每个文件 2T,文件里的内容依然是每行一个

    2024年02月08日
    浏览(38)
  • 头歌Hadoop 开发环境搭建及HDFS初体验(第2关:配置开发环境 - Hadoop安装与伪分布式集群搭建)

    注: 1 头歌《Hadoop 开发环境搭建及HDFS初体验》三关在一个实验环境下,需要三关从前往后按顺序评测,跳关或者实验环境结束后重新打开 不能单独评测通过 2 复制粘贴请用右键粘贴,CTRL+C/V不管用哦~ 第1关:配置开发环境 - JavaJDK的配置: 解压: 配置环境变量: 细节: vi

    2024年02月08日
    浏览(121)
  • Hadoop-HDFS详解与HA,完全分布式集群搭建(细到令人发指的教程)

    本篇篇幅较长,有许多集群搭建干货,和枯燥乏味但是面试可能问到的理论知识。 思来想去不知道怎样才能鼓励自己加油学习,想想要面对的生活还是假吧意思打开学习视频吧。 目录 一、引入 hdfs是什么 hdfs的由来 hdfs架构体系 hdfs的优缺点 优点 缺点 二、HDFS_block简介和注意

    2023年04月19日
    浏览(46)
  • 头歌 分布式文件系统HDFS 答案

    第1关:HDFS的基本操作 在右侧命令行中启动 Hadoop ,进行如下操作。 在 HDFS 中创建 /usr/output/ 文件夹; 在本地创建 hello.txt 文件并添加内容:“ HDFS的块比磁盘的块大,其目的是为了最小化寻址开销。 ”; 将 hello.txt 上传至 HDFS 的 /usr/output/ 目录下; 删除 HDFS 的 /user/hadoop 目录

    2023年04月27日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包