在 Linux 环境下操作 HDFS(Hadoop Distributed File System) 修改权限,一般使用 Hadoop 自带的命令行工具。下面按常见场景给你总结一下。
hdfs dfs -chmodhdfs dfs -chmod 755 /user/hadoop/testdir
递归修改:
hdfs dfs -chmod -R 755 /user/hadoop/testdir
示例:
hdfs dfs -chmod 644 /data/file.txt
权限含义和 Linux 一样:
- 7 = rwx
- 6 = rw-
- 5 = r-x
- 4 = r–
hdfs dfs -chownhdfs dfs -chown hadoop:hadoop /user/hadoop/testdir
递归修改:
hdfs dfs -chown -R hadoop:hadoop /user/hadoop/testdir
只改属主:
hdfs dfs -chown hadoop /user/hadoop/testdir
只改属组:
hdfs dfs -chgrp hadoop /user/hadoop/testdir
HDFS 支持 ACL(类似 Linux ACL)
hdfs dfs -setfacl -m user:alice:rwx /data/test
hdfs dfs -getfacl /data/test
hdfs dfs -setfacl -x user:alice /data/test
hdfs dfs -ls /user/hadoop
输出示例:
drwxr-xr-x - hadoop hadoop 0 2025-01-01 10:00 testdir
默认只有超级用户(如 hdfs)能改别人文件
sudo -u hdfs hdfs dfs -chmod 777 /data
HDFS 权限默认是开启的
由 dfs.permissions.enabled=true 控制
HDFS 权限 ≠ Linux 文件系统权限
只是“逻辑权限”,不控制磁盘文件
❌ Permission denied
✅ 用 hdfs 用户或文件 owner 执行
❌ 命令不存在
✅ 确认 HADOOP_HOME/bin 在 PATH 中
如果你说的是:
可以告诉我具体场景,我可以给你更针对性的命令。