惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

S
Schneier on Security
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Know Your Adversary
Know Your Adversary
G
GRAHAM CLULEY
V
Vulnerabilities – Threatpost
P
Palo Alto Networks Blog
Security Latest
Security Latest
P
Privacy & Cybersecurity Law Blog
Simon Willison's Weblog
Simon Willison's Weblog
A
Arctic Wolf
T
Tor Project blog
T
Threatpost
NISL@THU
NISL@THU
I
InfoQ
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Apple Machine Learning Research
Apple Machine Learning Research
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
aimingoo的专栏
aimingoo的专栏
Microsoft Azure Blog
Microsoft Azure Blog
WordPress大学
WordPress大学
K
Kaspersky official blog
W
WeLiveSecurity
L
LINUX DO - 热门话题
小众软件
小众软件
Recorded Future
Recorded Future
B
Blog RSS Feed
H
Help Net Security
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
IT之家
IT之家
L
Lohrmann on Cybersecurity
Last Week in AI
Last Week in AI
Stack Overflow Blog
Stack Overflow Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
阮一峰的网络日志
阮一峰的网络日志
V
Visual Studio Blog
Blog — PlanetScale
Blog — PlanetScale
雷峰网
雷峰网
爱范儿
爱范儿
C
CXSECURITY Database RSS Feed - CXSecurity.com
T
Threat Research - Cisco Blogs
C
Cyber Attacks, Cyber Crime and Cyber Security
H
Hacker News: Front Page
博客园 - 三生石上(FineUI控件)
N
Netflix TechBlog - Medium
P
Proofpoint News Feed
有赞技术团队
有赞技术团队
N
News and Events Feed by Topic
云风的 BLOG
云风的 BLOG
Scott Helme
Scott Helme
V2EX - 技术
V2EX - 技术

博客园 - 季石磊

jps 报process information unavailable解决办法 Jobtracker重启Job recovery过程分析 hadoop & hbase 上下线 Hbase性能优化 Poor performance running Hadoop on RHEL 6.2 or later when transparent hugepage compaction is enabled ldconfig几个需要注意的地方[转] [转]HBase性能优化方法总结 centos 查看版本 关于Hbase集群需要使用DNS域名解析的体会 修改Hadoop集群的备份数 [转载]ext4的noatime 指定HADOOP_HOME位置的三种方法 Windows下 Python 安装包的配置 django1.4测试环境 css样式,图片路径问题解决 Python用subprocess的Popen实现用户切换 CentOS 6安装JDK及系统配置 mapreduce程序运行避免手动删除output目录 HDFS配置设置 Hadoop运维操作
HDFS Permissions & Acls
季石磊 · 2012-12-27 · via 博客园 - 季石磊

  1.概述

  Hadoop分布式文件系统(HDFS)对文件和文件夹的权限控制模型与 POSIX文件系统的权限控制模型一样,每一个文件和文件夹都分配了所有者用户和所有者用户组。每个客户端访问HDFS的过程中,身份凭证由用户名和组列表两部分组成,Hadoop进行身份验证的时候,首先验证用户名,如果用户名验证不通过则验证用户组,如果用户名和用户组都验证失败则身份验证失败。

  2.身份验证模式

  Hadoop支持2种不同的身份验证模式,可以通过hadoop.security.authentication属性进行配置:

    • simple

  在simple身份认证模式下,用户的身份信息就是客户端的操作系统的登录用户,在Unix类的操作系统中,HDFS的用户名等同使用whoami命令查看结果的用户名。

    • kerberos

  在kerberos身份认证模式下,HDFS用户的身份是由kerberos凭证决定的。kerberos认证的安全性较高,但配置相对复杂,一般情况下很少使用。

  3.Hadoop的Super-User

  哪个用户启动Hadoop的Namenode,哪个用户就是Hadoop的超级管理员,拥有Hadoop全部权限。HDFS的超级管理员不必是操作系统的超级管理员。

  4.配置参数

  假设有一个HDFS集群,有两个用户UserA和UserB。要求HDFS只允许UserA和UserB访问,不允许其它用户访问,且UserA创建的文件UserB不能访问,同样UserB创建的文件UserA也不能访问。可以执行以下配置:

  (1) 在core-site.xmll中配置以下属性:

<property>
 
  <name>hadoop.security.authorization</name>
 
  <value>true</value>
 
</property>

  (2) 配置${HADOOP_CONF_DIR}/hadoop-policy.xml

<property>
 
  <name> security.client.protocol.acl </name>
 
  <value>UserA,UserB</value>
 
</property>

只允许UserA,UserB访问Hdfs,不允许其它用户访问,注意这个地方如果设置用户组的话,用户组前面需要加一个空格。

(3)修改core-site.xmll中配置以下属性,开启dfs安全配置,同时设置新创建文件的umask码为077

<property>
 
  <name>dfs.permissions</name>
 
  <value>true</value>
 
</property>

<property>
 
  <name>fs.permissions.umask-mode</name>
 
  <value>077</value>
 
</property>

  如果用户通过通过跳板机或者客户端访问Hdfs的时候,建议使用final关键字以防止Hdfs服务器配置被客户端的配置覆盖,具体配置如下:  

<property>
 
  <name>dfs.permissions</name>
 
  <value>true</value>

   <final>true</final>
 
</property>

  最后,使用hadoop启动hadoop执行start-all.sh 启动Hadoop,不能使用UserA或者UserB启动Hadoop。

  5.umask

  POSIX文件权限有读,写,执行三种权限,分别用r,w,x代表,这三种权限的数值大小如下表所示:

1    x

2    w

4    r

  根据这三个数值可以得到混合权限数值表

1    --x

2    -w-

3    -wx

4    r--

5    r-x

6    rw-

7    rwx

这样Hdfs的文件有三种权限组成,可以通过hadoop fs -ls查看

drwxr-xr-x

  以上权限的解释为

    d       rwx                     r-x                   r-x

    目录   文件所有者的权限     同组用户的权限   其它用户的权限

    表示为数值就是755

  可以理解umask的作用为屏蔽权限位,例如umask 022,不屏蔽所属用户的权限,屏蔽同组用户的w权限,屏蔽其他用户的w权限,于是文件的默认权限为755,更简便的方法是用777减去022,得到755

  6.其它问题

  需要更改相关文件夹的权限,确保Hadoop在运行过程中的各类临时数据可以有写入权限,如果需要运行Mapreduce则需要修改Hdfs上面的${hadoop-tmp}/mapred/staging 文件夹权限,可以给737权限。如果需要运行Hive则需要给客户端本地硬盘的${hadoop-tmp}赋予其它用户写入权限。