hdfs授予文件及其所有目录的权限

zpqajqem  于 2021-06-01  发布在  Hadoop
关注(0)|答案(2)|浏览(413)

我在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 以及 /c755 : +x 到包含文件的目录。注:我不拥有 /a 这已经是世界可读的了。
有什么问题吗 hadoop fs 命令我这么做?java/scala代码怎么样?

mo49yndu

mo49yndu1#

你可以用 acls 为此:
给用户读写和执行权限

hdfs dfs -setfacl -m -R user:UserName:rwx /a/b/c/f1.txt

如果要查看文件的权限,请使用
getfacl hdfs dfs -getfacl -R hdfs://somehost:8020/a/b/c/f1.txt hadoop指南中的setfacl:
塞特法
用法: hdfs dfs -setfacl [-R] [-b|-k -m|-x <acl_spec> <path>]|[--set <acl_spec> <path>] 设置文件和目录的访问控制列表(ACL)。
选项:

-b: Remove all but the base ACL entries. The entries for user, group and others are retained for compatibility with permission bits.
-k: Remove the default ACL.
-R: Apply operations to all files and directories recursively.
-m: Modify ACL. New entries are added to the ACL, and existing entries are retained.
-x: Remove specified ACL entries. Other ACL entries are retained.
--set: Fully replace the ACL, discarding all existing entries. The acl_spec must include entries for user, group, and others for compatibility with permission bits.
acl_spec: Comma separated list of ACL entries.
path: File or directory to modify.

示例:

hdfs dfs -setfacl -m user:hadoop:rw- /file
hdfs dfs -setfacl -x user:hadoop /file
hdfs dfs -setfacl -b /file
hdfs dfs -setfacl -k /dir
hdfs dfs -setfacl --set user::rw-,user:hadoop:rw-,group::r--,other::r-- /file
hdfs dfs -setfacl -R -m user:hadoop:r-x /dir
hdfs dfs -setfacl -m default:user:hadoop:r-x /dir
Exit Code:

Returns 0 on success and non-zero on error.
huus2vyu

huus2vyu2#

使用 -R (递归)选项。它允许存在于目录中的所有文件。

hadoop fs -chmod -R 755 /a/b/c/

相关问题