1.文件账号授权需求
hdfs上的目录与文件对应各自的kerberos账号,很多时候需要对另外的账号授予权限。这个时候可以使用setfacl命令来完成相应的需求。
2.getfacl命令
在了解setfacl之前,我们先看看getfacl命令。
hadoop fs -getfacl filepath
# file: filepath
# owner: xxx
# group: supergroup
user::rwx
group::rwx
mask::rwx
other::rwx
可以看到,此时filepath只有名为xxx的owner有权限。
3.setfacl命令
hdfs dfs -setfacl -R -m user:zzz:r-x filepath
上面的命令,就是给名为zzz的账户,对filepath授予读权限。
-R表示是对filepath及其下面的目录与文件递归生效。
注意需要加上x可执行权限,否则不生效。
此时再用getfacl命令查看
# file: filepath
# owner: xxx
# group: supergroup
user::rwx
user:zzz:r-x
group::rwx
mask::rwx
other::rwx
已经对账户zzz生效,zzz可以读hdfs上filepath及其下面的目录与文件。