共计 5949 个字符,预计需要花费 15 分钟才能阅读完成。
Hadoop 从 2.4.0 版本开始支持 hdfs 的 ACL,在 CDH5.0 当中也集成了该特性,下面对其进行一些测试:
unnamed user (file owner) | 文件的拥有者 |
unnamed group (file group) | 文件的所属 组 |
named user | 除了文件的拥有者和拥有组之外,的其它用户 |
named group | 除了文件的拥有者和拥有组之外,的其它用户 |
mask | 权限掩码,用于过滤named user 和named group 的权限 |
一、启用 ACL:
<property>
<name>dfs.permissions.enabled</name>
<value>true</value>
</property>
<property>
<name>dfs.namenode.acls.enabled</name>
<value>true</value>
</property>
二、测试 ACL:
①
[hadoop@master ~]$ groups
hadoop
创建目录并上传文件:
[hadoop@master ~]$ hadoop fs -mkdir /input/acl
[hadoop@master hadoop]$ hadoop fs -put conf/yarn-site.xml /input/acl
[hadoop@master hadoop]$ hadoop fs -ls /input/acl
Found 1 items
-rw-r–r– 3 hadoop supergroup 5919 2014-04-25 15:08 /input/acl/yarn-site.xml
[hadoop@master ~]$ hadoop fs -getfacl /input/acl
# file: /input/acl
# owner: hadoop
# group: supergroup
user::rwx
group::r-x
other::r-x
同一组的成员有读权限,没有写权限:
[mapred@master ~]$ groups
hadoop
[mapred@master ~]$ hadoop fs -ls /input/acl
Found 1 items
-rw-r–r– 3 hadoop supergroup 5919 2014-04-25 15:08 /input/acl/yarn-site.xml
[mapred@master hadoop]$ hadoop fs -put conf/capacity-scheduler.xml /input/acl
put: Permission denied: user=mapred, access=WRITE, inode=”/input/acl”:hadoop:supergroup:drwxr-xr-x
设置 mapred 用户只读:
[hadoop@master ~]$ hdfs dfs -setfacl -m user:mapred:r– /input/acl
[hadoop@master ~]$ hdfs dfs -getfacl /input/acl
# file: /input/acl
# owner: hadoop
# group: supergroup
user::rwx
user:mapred:r–
group::r-x
mask::r-x
other::r-x
执行权限被拒绝:
[hadoop@master ~]$ logout
[root@master ~]# su – mapred
[mapred@master ~]$ hadoop fs -ls /input/acl
ls: Permission denied: user=mapred, access=READ_EXECUTE, inode=”/input/acl”:hadoop:supergroup:drwxr-xr-x:user:mapred:r–,group::r-x
移除 acl:
[hadoop@master ~]$ hdfs dfs -setfacl -x user:mapred /input/acl
[hadoop@master ~]$ hdfs dfs -getfacl /input/acl
# file: /input/acl
# owner: hadoop
# group: supergroup
user::rwx
group::r-x
mask::r-x
other::r-x
重新拥有执行权限,因为 mapred 是 hadoop 用户组中的:
[mapred@master ~]$ hadoop fs -ls /input/acl/yarn-site.xml
Found 1 items
-rw-r–r– 3 hadoop supergroup 5919 2014-04-25 15:08 /input/acl/yarn-site.xml
更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2014-05/101008p2.htm
相关阅读:
将本地文件拷到 HDFS 中 http://www.linuxidc.com/Linux/2013-05/83866.htm
从 HDFS 下载文件到本地 http://www.linuxidc.com/Linux/2012-11/74214.htm
将本地文件上传至 HDFS http://www.linuxidc.com/Linux/2012-11/74213.htm
HDFS 基本文件常用命令 http://www.linuxidc.com/Linux/2013-09/89658.htm
Hadoop 中 HDFS 和 MapReduce 节点基本简介 http://www.linuxidc.com/Linux/2013-09/89653.htm
《Hadoop 实战》中文版 + 英文文字版 + 源码【PDF】http://www.linuxidc.com/Linux/2012-10/71901.htm
Hadoop: The Definitive Guide【PDF 版】http://www.linuxidc.com/Linux/2012-01/51182.htm
②
定义在 owner、other 里的权限一直都是有效的,其它权限可能用效或者被隐蔽。
named user 与 named group 的值是否生效,还要看其值与 mask 的“与”值,即 mask 也要有该权限,才能生效。
mask 是用于过滤 named user 与 named group 的权限的,可以通过 chmod 改变。
如:在给同组的其它用户,其它组的用户或组添加 acl 时,如果给的权限比当前 mask 大,则 mask 会随之更新:
[Hadoop@master ~]$ hdfs dfs -getfacl /input/acl【初始权限】
# file: /input/acl
# owner: hadoop
# group: supergroup
user::rwx
group::r-x
mask::r-x
other::r-x
[hadoop@master ~]$ hdfs dfs -setfacl -m user:mapred:rwx /input/acl
[hadoop@master ~]$ hdfs dfs -getfacl /input/acl【mapred 用户拥有 rwx 权限,但 mask 为 r -x,则 mask 自动改为 rwx】
# file: /input/acl
# owner: hadoop
# group: supergroup
user::rwx
user:mapred:rwx
group::r-x
mask::rwx
other::r-x
但所属组的用户权限不受影响:
[hadoop@master ~]$ hadoop fs -chmod g-x /input/acl【取消同一用户组的可执行权限,并更新 mask 的值】
[hadoop@master ~]$ hdfs dfs -getfacl /input/acl
# file: /input/acl
# owner: hadoop
# group: supergroup
user::rwx
group::r-x #effective:r–
group:apache:rwx #effective:rw-
mask::rw-
other::r-x
[hadoop@master ~]$ logout
[root@master ~]# su – mapred
[mapred@master ~]$ hadoop fs -ls /input/acl【上一步取消同一用户组的可执行权限,但没有生效,因为 mapred 和 hadoop 属于同一组】
Found 1 items
-rw-r–r– 3 hadoop supergroup 5919 2014-04-25 15:08 /input/acl/yarn-site.xml
更多 Hadoop 相关信息见Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13
Hadoop 从 2.4.0 版本开始支持 hdfs 的 ACL,在 CDH5.0 当中也集成了该特性,下面对其进行一些测试:
unnamed user (file owner) | 文件的拥有者 |
unnamed group (file group) | 文件的所属 组 |
named user | 除了文件的拥有者和拥有组之外,的其它用户 |
named group | 除了文件的拥有者和拥有组之外,的其它用户 |
mask | 权限掩码,用于过滤named user 和named group 的权限 |
一、启用 ACL:
<property>
<name>dfs.permissions.enabled</name>
<value>true</value>
</property>
<property>
<name>dfs.namenode.acls.enabled</name>
<value>true</value>
</property>
二、测试 ACL:
①
[hadoop@master ~]$ groups
hadoop
创建目录并上传文件:
[hadoop@master ~]$ hadoop fs -mkdir /input/acl
[hadoop@master hadoop]$ hadoop fs -put conf/yarn-site.xml /input/acl
[hadoop@master hadoop]$ hadoop fs -ls /input/acl
Found 1 items
-rw-r–r– 3 hadoop supergroup 5919 2014-04-25 15:08 /input/acl/yarn-site.xml
[hadoop@master ~]$ hadoop fs -getfacl /input/acl
# file: /input/acl
# owner: hadoop
# group: supergroup
user::rwx
group::r-x
other::r-x
同一组的成员有读权限,没有写权限:
[mapred@master ~]$ groups
hadoop
[mapred@master ~]$ hadoop fs -ls /input/acl
Found 1 items
-rw-r–r– 3 hadoop supergroup 5919 2014-04-25 15:08 /input/acl/yarn-site.xml
[mapred@master hadoop]$ hadoop fs -put conf/capacity-scheduler.xml /input/acl
put: Permission denied: user=mapred, access=WRITE, inode=”/input/acl”:hadoop:supergroup:drwxr-xr-x
设置 mapred 用户只读:
[hadoop@master ~]$ hdfs dfs -setfacl -m user:mapred:r– /input/acl
[hadoop@master ~]$ hdfs dfs -getfacl /input/acl
# file: /input/acl
# owner: hadoop
# group: supergroup
user::rwx
user:mapred:r–
group::r-x
mask::r-x
other::r-x
执行权限被拒绝:
[hadoop@master ~]$ logout
[root@master ~]# su – mapred
[mapred@master ~]$ hadoop fs -ls /input/acl
ls: Permission denied: user=mapred, access=READ_EXECUTE, inode=”/input/acl”:hadoop:supergroup:drwxr-xr-x:user:mapred:r–,group::r-x
移除 acl:
[hadoop@master ~]$ hdfs dfs -setfacl -x user:mapred /input/acl
[hadoop@master ~]$ hdfs dfs -getfacl /input/acl
# file: /input/acl
# owner: hadoop
# group: supergroup
user::rwx
group::r-x
mask::r-x
other::r-x
重新拥有执行权限,因为 mapred 是 hadoop 用户组中的:
[mapred@master ~]$ hadoop fs -ls /input/acl/yarn-site.xml
Found 1 items
-rw-r–r– 3 hadoop supergroup 5919 2014-04-25 15:08 /input/acl/yarn-site.xml
更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2014-05/101008p2.htm
相关阅读:
将本地文件拷到 HDFS 中 http://www.linuxidc.com/Linux/2013-05/83866.htm
从 HDFS 下载文件到本地 http://www.linuxidc.com/Linux/2012-11/74214.htm
将本地文件上传至 HDFS http://www.linuxidc.com/Linux/2012-11/74213.htm
HDFS 基本文件常用命令 http://www.linuxidc.com/Linux/2013-09/89658.htm
Hadoop 中 HDFS 和 MapReduce 节点基本简介 http://www.linuxidc.com/Linux/2013-09/89653.htm
《Hadoop 实战》中文版 + 英文文字版 + 源码【PDF】http://www.linuxidc.com/Linux/2012-10/71901.htm
Hadoop: The Definitive Guide【PDF 版】http://www.linuxidc.com/Linux/2012-01/51182.htm