HDFS文件权限
HDFS文件和目录的权限控制和Linux系统类似,有chmod,chown,chgrp几个命令可以修改权限和所有者.
- hadoop fs -chmod 750 /user/endless
- hadoop fs -chown -R test1:group1 /user/test1
- hadoop fs -chown test2 /user/test2
- hadoop fs -chgrp group2 /user/test2
创建几个用户测试, 其中endless是安装和创建HDFS的用户,所属的组为supergroup,相当于是root,可以查看和删除HDFS上所有文件,/user/endless的权限是750,所以test1没有权限读取这个目录
- [root@linux ~]#groupadd group1
- [root@linux ~]#groupadd group2
- [root@linux ~]#groupadd supergroup
- [root@linux ~]#useradd test1 -G group1
- [root@linux ~]#useradd test2 -G group2
HDFS用户权限
上面的是HDFS中目录和文件的权限,还可以控制用户权限,即只让一些用户和组有权限访问HDFS,比如配置了endless和test1,那么test2就访问不了HDFS,/user/test2目录也访问不了。 HDFS默认是不启动用户权限,在core-site.xml中配置hadoop.security.authorization为true开启,其中允许的用户在hadoop-policy.xml中配置
修改完core-site.xml要重启HDFS,但如果仅仅修改hadoop-policy.xml则不需要重启,执行下面命令即可生效: hadoop dfsadmin -refreshServiceAcl 或 hdfs dfsadmin -refreshServiceAcl
test2用户试图访问HDFS会报错: