温馨提示×

linux hdfs怎样设权限

小樊
47
2026-09-22 20:30:59
栏目: 智能运维

在 Linux 上使用 HDFS(Hadoop 分布式文件系统) 设置权限,主要通过 HDFS 自带的权限模型 和 hdfs dfs / hadoop fs 命令 来完成。下面按常见场景给你说明。


一、HDFS 权限模型简介

HDFS 权限和 Linux 类似:

  • 三类用户:
    • owner(属主)
    • group(属组)
    • others(其他用户)
  • 三种权限:
    • r 读
    • w 写
    • x 执行(对目录表示可进入)

示例:

drwxr-xr--  user1 group1  /user/user1

表示:

  • user1:读、写、执行
  • group1:读、执行
  • 其他:无权限

二、常用 HDFS 权限命令

1️⃣ 查看权限

hdfs dfs -ls /path

或

hadoop fs -ls /path

2️⃣ 修改权限(chmod)

数字方式(推荐)

hdfs dfs -chmod 755 /user/test

符号方式

hdfs dfs -chmod u+rwx,g+rx,o+rx /user/test

递归修改:

hdfs dfs -chmod -R 700 /user/test

3️⃣ 修改属主和属组(chown)

hdfs dfs -chown user1:group1 /user/test

递归:

hdfs dfs -chown -R user1:group1 /user/test

⚠️ 只有 HDFS 超级用户(通常是 hdfs)才能改 owner


4️⃣ 修改属组(chgrp)

hdfs dfs -chgrp group1 /user/test

递归:

hdfs dfs -chgrp -R group1 /user/test

5️⃣ 设置 ACL(更细粒度权限)

HDFS 支持 ACL(访问控制列表)

开启 ACL(默认一般已开)

hdfs-site.xml:

<property>
  <name>dfs.namenode.acls.enabled</name>
  <value>true</value>
</property>

添加 ACL

hdfs dfs -setfacl -m user:alice:rwx /user/test

查看 ACL

hdfs dfs -getfacl /user/test

删除 ACL

hdfs dfs -setfacl -x user:alice /user/test

三、HDFS 特殊权限

1️⃣ Sticky Bit(防误删)

hdfs dfs -chmod 1777 /tmp

只有文件 owner 才能删自己的文件


2️⃣ umask(默认权限)

在 hdfs-site.xml 或用户环境中:

hdfs dfs -mkdir /test

默认权限受 umask 影响(类似 Linux)


四、Linux 用户 ↔ HDFS 用户关系

⚠️ 重要:

  • HDFS 不存密码
  • HDFS 用户 = Linux 用户名(或 Kerberos 用户)
  • 你用什么 Linux 用户执行命令,HDFS 就认为你是谁

示例:

whoami
# user1
hdfs dfs -put file /user/user1

五、Kerberos 环境(安全集群)

如果是安全集群:

kinit user1
hdfs dfs -ls /

六、常见错误

❌ Permission denied

  • 用户不对
  • 没权限
  • 不是 owner 又不是超级用户

解决:

sudo -u hdfs hdfs dfs -chmod 777 /path

如果你愿意,可以告诉我:

  • 是 单机 / 伪分布式 / 集群
  • 是否 开了 Kerberos
  • 具体想实现什么权限需求(如:多人共享目录)

我可以直接给你可复制的命令。

0 踩