HDFS权限管理、用户身份认证和数据访问授权、UGO权限管理、umask权限掩码、UGO权限相关命令、Web页面修改UGO权限

HDFS权限管理

1.1 总览概述

作为分布式文件系统,HDFS也集成了一套兼容POSIX的权限管理系统。客户端在进行每次文件操时,系统会从用户身份认证数据访问授权两个环节进行验证: 客户端的操作请求会首先通过本地的用户身份验证机制来获得“凭证”(类似于身份证书),然后系统根据此“凭证”分辨出合法的用户名,再据此查看该用户所访问的数据是否已经授权。一旦这个流程中的某个环节出现异常,客户端的操作请求便会失败。
在这里插入图片描述

1.2 UGO权限管理

1.2.1 介绍

HDFS的文件权限与Linux/Unix系统的UGO模型类型类似,可以简单描述为:每个文件和目录都与一个所有者和一个组相关联。该文件或目录对作为**所有者(USER)的用户,作为该组成员的其他用户(GROUP)以及对所有其他用户(OTHER)**具有单独的权限。
在这里插入图片描述

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

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

1.2.2 umask权限掩码

Linux中umask可用来设定权限掩码**。权限掩码是由3个八进制的数字所组成,将现有的存取权限减掉权限掩码后,即可产生建立文件时预设的权限。

与Linux/Unix系统类似,HDFS也提供了umask掩码,用于设置在HDFS中默认新建的文件和目录权限位。默认umask值有属性fs.permissions.umask-mode指定,默认值022。

创建文件和目录时使用的umask,默认的权限就是:777-022=755。也就是drwxr-xr-x。

1.2.3 UGO权限相关命令

hadoop fs -**chmod** 750 /user/yida/foo  //变更目录或文件的权限位
hadoop fs -**chown** :portal /user/yida/foo  //变更目录或文件的属主或用户组
hadoop fs -**chgrp** itcast _group1 /user/yida/foo //变更用户组

需要注意的是,使用这个命令的用户必须是超级用户,或者是该文件的属主,同时也是该用户组的成员。

1.2.4 Web页面修改UGO权限

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

在这里插入图片描述

**粘滞位(Sticky bit)**用法在目录上设置,如此以来,只有目录内文件的所有者或者root才可以删除或移动该文件。如果不为目录设置粘滞位,任何具有该目录写和执行权限的用户都可以删除和移动其中的文件。实际应用中,粘滞位一般用于/tmp目录,以防止普通用户删除或移动其他用户的文件。

在这里插入图片描述

1.3 用户身份认证

用户身份认证独立于HDFS之外,也就说HDFS并不负责用户身份合法性检查,但HDFS会通过相关接口来获取相关的用户身份,然后用于后续的权限管理。用户是否合法,完全取决于集群使用认证体系。目前社区支持两种身份认证,即简单认证(Simple)和Kerberos。模式由hadoop.security.authentication属性指定,默认simple。

1.3.1 Simple认证

基于客户端所在的Linux/Unix系统的登录用户名来进行认证。只要用户能正常登录就认证成功。客户端与NameNode交互时,会将用户的登录账号(通过类似whoami的命令来获取)作为合法用户名传递至Namenode。 这意味着使用不同的账号登录到同一个客户端,会产生不同的用户名,故在多租户条件这种认证会导致权限混淆;同时恶意用户也可以伪造其他人的用户名非法获得相应的权限,对数据安全造成极大的隐患。线上生产环境一般不会使用。simple认证时,HDFS想法是:防止好人误做坏事,不防止坏人做坏事。

猜你喜欢

转载自blog.csdn.net/qq_40585384/article/details/121894115