在Ubuntu中设置HDFS权限,可通过命令行工具或配置文件操作,核心命令与Linux文件系统类似,同时支持ACL细粒度控制。以下是关键操作步骤:
查看权限
使用hdfs dfs -ls
命令查看文件/目录权限,示例:
hdfs dfs -ls /user/hadoop/data
输出示例:drwxr-x--- 2 hadoop hadoop 0 2025-08-01 10:00 /user/hadoop/data
,其中drwxr-x---
表示权限(所有者:读写执行,组:读执行,其他:无权限)。
修改权限(UGO模型)
chmod
命令,如750
(所有者:读写执行,组:读执行,其他:无权限)。hdfs dfs -chmod 750 /user/hadoop/data
u+rwx,g+rx,o-rwx
。hdfs dfs -chmod u+rwx,g+rx,o-rwx /user/hadoop/data
-R
参数,修改目录及其子文件权限。hdfs dfs -chmod -R 750 /user/hadoop/data
修改所有者和组
chown
命令,如将所有者改为hadoop
用户。hdfs dfs -chown hadoop:hadoop /user/hadoop/data
chgrp
命令,如将组改为supergroup
。hdfs dfs -chgrp supergroup /user/hadoop/data
设置ACL规则
setfacl -m user:用户名:权限 /路径
。hdfs dfs -setfacl -m user:alice:rwx /user/hadoop/data
setfacl -m group:组名:权限 /路径
。hdfs dfs -setfacl -m group:devteam:r-x /user/hadoop/data
setfacl -x user:用户名 /路径
。hdfs dfs -setfacl -x user:alice /user/hadoop/data
查看ACL规则
hdfs dfs -getfacl /user/hadoop/data
输出示例:
# file: /user/hadoop/data
# owner: hadoop
# group: hadoop
user::rwx
user:alice:rwx
group::r-x
mask::rwx
other::---
启用权限校验
编辑/etc/hadoop/hdfs-site.xml
,确保以下参数为true
:
<property>
<name>dfs.permissions.enabled</name>
<value>true</value>
</property>
重启HDFS使配置生效:
sudo service hadoop-hdfs-namenode restart
设置超级用户组
在hdfs-site.xml
中添加或修改:
<property>
<name>dfs.permissions.superusergroup</name>
<value>hadoop</value> <!-- 将hadoop组设为超级用户组 -->
</property>
超级用户组成员可绕过权限校验。
kinit
命令获取票据后操作。/var/log/hadoop-hdfs/
下的日志文件确认操作是否生效。以上操作需在HDFS服务正常运行时执行,且建议提前通过hdfs dfsadmin -refreshUserToGroupsMappings
刷新用户组映射。