Ubuntu HDFS如何进行权限控制
导读:Ubuntu 上 HDFS 权限控制实践 一 核心模型与关键概念 UGO 权限模型:每个文件/目录关联所有者(user)、所属组(group)与其他(other),权限为r/w/x。对文件:r 读取、w 写入/追加;对目录:r 列目录、w...
Ubuntu 上 HDFS 权限控制实践
一 核心模型与关键概念
- UGO 权限模型:每个文件/目录关联所有者(user)、所属组(group)与其他(other),权限为r/w/x。对文件:r 读取、w 写入/追加;对目录:r 列目录、w 创建/删除子项、x 进入子目录。权限检查沿路径的所有组件执行,访问任意中间目录都需要EXECUTE权限。支持粘滞位(Sticky Bit)用于共享目录(如 /tmp),仅所有者/目录所有者/超级用户可删除他人文件。HDFS 的超级用户是启动 NameNode 的进程用户;可通过 dfs.permissions.superusergroup 指定超级用户组。默认开启权限校验(dfs.permissions.enabled=true)。
二 启用与配置
- 开启/关闭权限校验(hdfs-site.xml):
- 开启:
< property> < name> dfs.permissions.enabled< /name> < value> true< /value> < /property> - 关闭(仅测试):
< property> < name> dfs.permissions.enabled< /name> < value> false< /value> < /property>
- 开启:
- 指定超级用户组(可选,hdfs-site.xml):
< property> < name> dfs.permissions.superusergroup< /name> < value> supergroup< /value> < /property>
- 新建文件/目录的默认权限由 umask 决定(core-site.xml):
- 默认值:022。新文件权限为 0666 & ^umask(通常为 644),新目录为 0777 & ^umask(通常为 755)。可按需调整(如设为 027 以收紧组与其他权限)。
三 常用权限操作命令
- 查看权限与属主/属组:
hdfs dfs -ls /path
- 修改权限(八进制或符号):
hdfs dfs -chmod 750 /path或hdfs dfs -chmod u=rwx,g=rx,o= /path
- 修改属主/属组:
hdfs dfs -chown alice:data /pathhdfs dfs -chgrp analytics /path
- 递归与默认 ACL:
hdfs dfs -chmod -R 750 /datahdfs dfs -setfacl -m default:user:alice:rwx /data(对 /data 下新建子项生效)
- 粘滞位(共享目录防误删):
hdfs dfs -chmod +t /tmp
- 组校验与身份查看:
hdfs groups alice(查看 alice 在 HDFS 侧的组映射)
四 细粒度授权与 ACL
- 启用 ACL(hdfs-site.xml):
< property> < name> dfs.namenode.acls.enabled< /name> < value> true< /value> < /property>
- 典型场景与命令示例:
- 项目目录 /data 仅对 leader 与 dev 组开放读写,其他无权限:
hdfs dfs -setfacl -m user:leader:rwx /datahdfs dfs -setfacl -m group:dev:rwx /datahdfs dfs -setfacl -m other::--- /data
- 为后续在该目录下新建的文件/子目录自动继承 ACL:
hdfs dfs -setfacl -m default:user:leader:rwx /datahdfs dfs -setfacl -m default:group:dev:rwx /datahdfs dfs -setfacl -m default:other::--- /data
- 项目目录 /data 仅对 leader 与 dev 组开放读写,其他无权限:
- 重要说明:
- 在含 ACL 的文件上执行 chmod 实际修改的是 掩码(mask),会过滤命名用户/组的有效权限;如需保持扩展 ACL 效果,请同时调整 mask。
- 权限检查顺序为:所有者 → 所属组 → 其他;对路径中所有现有目录组件需具备 EXECUTE 才能继续访问。
五 认证与组映射及安全加固
- 身份认证模式(core-site.xml):
- 简单模式:hadoop.security.authentication=simple(基于操作系统用户,便捷但不安全,适合测试)。
- Kerberos:hadoop.security.authentication=kerberos(强认证,生产推荐;客户端需 kinit 获取票据)。
- 组映射(hadoop.security.group.mapping):
- 默认基于 NameNode 主机的本地系统组;也可接入 LDAP 等外部服务实现集中用户/组管理(如 LdapGroupsMapping)。
- 审计与网络边界:
- 启用 审计日志 记录访问与变更,便于合规与追踪。
- 在 Ubuntu 上使用 ufw 限制访问、仅放通必要端口,并配合 SSH 加固、及时补丁与最小权限原则,降低攻击面。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu HDFS如何进行权限控制
本文地址: https://pptw.com/jishu/780386.html
