【Hadoop十九】HDFS权限设置

1.

hdfs权限检查启用,需要在hdfs-site.xml中做如下配置:

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

1.1. 默认情况下,用户在HDFS上创建的文件和目录的权限是rwxr-xr-x,即732,x表示有ls权限


 

默认的权限可以通过如下配置属性在hdfs-site.xml中进行配置

  <property>

  <name>fs.permissions.umask-mode</name>

  <value>032</value>

</property>

032表示屏蔽位,默认权限是777-屏蔽位对应的数字,因此,777-032=745, 745是权限位

r: 4

w:2

x:1

745表示rwx r-- r-x

2. /user/目录下的用户目录,通过设置为754,比如

drwxr-xr-x   - yarn                             supergroup          0 2016-05-04 14:21 /user/yarn

drwxr-xr-x   - spark                            supergroup          0 2016-05-17 19:09 /user/spark

drwxr-xr-x   - hdfs                             supergroup          0 2016-06-07 14:53 /user/hive

drwx------   - hbase                            supergroup          0 2016-03-18 20:26 /user/hbase

表示只有所属用户具有写权限

3.启动NameNode进程的用户就是HDFS的超级用户,可以对其它用户创建的文件或者目录进行chmod

而普通用户是没有权限对其它用户的用户或者目录进行chmod

4.改变文件或者目录所属的用户名和密码

hdfs dfs -chown yuzt:yuzt /user/hdfs

5. 授权

hdfs dfs -setfacl

可以将某个文件或者目录的读写执行权限授权给任意named用户名或者组,这是更细力度的权限控制

首先在hdfs-site.xml中添加如下配置以启用HDFS acl功能

 dfs.namenode.acls.enabled

hdfs dfs -setfacl -m user:hdfs:rwx /user/yuzt

将/user/yuzt的读写执行权限赋值给hdfs用户,user表示hdfs是一个用户,而不是group

通过上面的操作,用户hdfs可以在/user/yuzt创建文件后者目录了。

猜你喜欢

转载自bit1129.iteye.com/blog/2303927