java HDFS授予文件及其所有目录的权限
我在HDFS中有以下数据(2个文件):
/a
/b
/c
/f1.txt
/f2.txt
我想更改f1的权限。txt和f2。txt至644:
e、 g.hadoop fs -chmod 644 /a/b/c/*.txt
但是,为了真正授予对这些文件的访问权限,我需要将/b
和/c
的权限更改为755
:+x
对包含这些文件的目录的权限。注意:我没有/a
,这已经是世界可读的了
有hadoop fs
命令让我这么做吗?Java/Scala代码呢
# 1 楼答案
你可以使用
acls
来实现:授予用户读写和执行权限
如果想查看文件的权限,请使用
getfacl
hdfs dfs -getfacl -R hdfs://somehost:8020/a/b/c/f1.txt
SetFacl from hadoop guide :
setfacl
用法:
hdfs dfs -setfacl [-R] [-b|-k -m|-x <acl_spec> <path>]|[ set <acl_spec> <path>]
设置文件和目录的访问控制列表(ACL)
选项:
例如:
# 2 楼答案
使用
-R
(递归)选项。它允许出现在目录中的所有文件