当hdfs文件对外是公开的则该其他用户就算没有配置相关的权限一样可以进行相关的操作。
当hdfs文件对外权限是没有开放的,其他用户若需要进行相关操作则需要通过Ranger进行相关权限的配置。
首先 /input赋权 775 权限 下递归赋权750权限 让权限管理交给ranger
测试1 建hive1,hive2用户属于 hivegroup,spark1,spark2 属于sparkgroup
配置权限管理页面
配置 sparkgroup hivegroup 对/input/test1目录有可读可执行权限 排除hivegroup组下的hive1
预期应该是sparkgroup下spark1,spark2对目录有访问权限 hivegroup下hive2有访问权限 Hive1没有权限
实际上 都没有权限 组权限测试无效 将允许权限加入spark1 其他不变
可以看到spark1 已经可以访问了 spark2还是不能访问
测试下删除权限
成功删除 spark2 并没有权限 (组权限也没有生效) 测试下执行权限
给spark1用户 可读可写不可执行权限
目录已经没有 可读的权限了 这个符合期望 接下来继续测试组权限
图中可以看到sparkgroup 组跟spark1对目录具有可读可写可 执行下
看到 spark1 有权限 spark2没有权限 检查namenode 节点 spark1 跟 spark2所属组
再进行测试
Spark2 也有权限了 我们也尝试下 Hive组的
hivegroup组有可写可执行权限 但是hive1 没有权限 (此节点非namenode节点)
都没有权限 到namenode节点查看用户所属的组
我们给hive1 跟Hive2 都加入到hivegroup组里
还是没有权限 检查下原因
这边应该把这个去掉 再试 已经可以了
测试2 服务器节点上不存在用户 使用ranger-admin 创建内部用户权限测试(使用api操作hdfs 目录)
新建testuser55用户
配置权限
使用java api连接hdfs
测试结果有访问权限
测试3 ranger-admin上新建内部虚拟组 添加一些用户 测试用户权限是不是有效
配置权限
查看下namenode 节点下权限是不是写入了
很遗憾 并没有权限 将admin管理页面修改下
再次执行
namenode上没有建用户 虚拟用户可以支持权限 namenode上没有建组 组权限不支持