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创建文件后者目录了。