本文介绍JindoFS的namespace的存储模式(Block或Cache)支持的文件系统权限功能。Block模式和Cache模式不支持切换。
背景信息
根据您namespace的存储模式,JindoFS支持的系统权限如下:
当您namespace的存储模式是Block模式时,支持Unix和Ranger权限。
Unix权限:您可以设置文件的777权限,以及Owner和Group。
Ranger权限:您可以执行复杂或高级操作。例如使用路径通配符。
当您namespace的存储模式是Cache模式时,仅支持Ranger权限。
您可以执行复杂或高级操作。例如使用路径通配符。

启用JindoFS Unix权限
- 进入SmartData服务。
- 登录阿里云E-MapReduce控制台。
- 在顶部菜单栏处,根据实际情况选择地域和资源组。
- 单击上方的集群管理页签。
- 在集群管理页面,单击相应集群所在行的详情。
- 在左侧导航栏,选择。
- 登录阿里云E-MapReduce控制台。
进入namespace服务配置。
单击配置页签。
单击namespace。

单击自定义配置,在新增配置项对话框中,设置Key为jfs.namespaces.<namespace>.permission.method,Value为unix,单击确定。
保存配置。
单击右上角的保存。
在确认修改对话框中,输入执行原因,开启自动更新配置。
单击确定。
重启配置。
单击右上角的。
输入执行原因,单击确定。
开启文件系统权限后,使用方式跟HDFS一样。支持以下命令。
hadoop fs -chmod 777 jfs://{namespace_name}/dir1/file1 hadoop fs -chown john:staff jfs://{namespace_name}/dir1/file1如果用户对某一个文件没有权限,将返回如下错误信息。

启用JindoFS Ranger权限
您可以在Apache Ranger组件上配置用户权限,在JindoFS上开启Ranger插件后,就可以在Ranger上对JindoFS权限(和其它组件权限)进行一站式管理。
添加Ranger。
在namespace页签,单击自定义配置。
在新增配置项对话框中,设置Key为jfs.namespaces.<namespace>.permission.method,Value为ranger。
保存配置。
单击右上角的保存。
在确认修改对话框中,输入执行原因,开启自动更新配置。
单击确定。
重启配置。
单击右上角的。
输入执行原因,单击确定。
配置Ranger。
进入Ranger UI页面。
详情请参见概述。
Ranger UI添加HDFS service。

配置相关参数。
参数
描述
Service Name
固定格式:jfs-{namespace_name}。
例如:jfs-test。
Username
自定义。
Password
自定义。
Namenode URL
输入jfs://{namespace_name}/。
Authorization Enabled
使用默认值No。
Authentication Type
使用默认值Simple。
dfs.datanode.kerberos.principal
不填写。
dfs.namenode.kerberos.principal
dfs.secondary.namenode.kerberos.principal
Add New Configurations
单击Add。
启用JindoFS Ranger权限+LDAP用户组
如果您在Ranger UserSync上开启了从LDAP同步用户组信息的功能,则JindoFS也需要修改相应的配置,以获取LDAP的用户组信息,从而对当前用户组进行Ranger权限的校验。
在namespace页签,单击自定义配置。
在新增配置项对话框中,参见以下示例设置参数来配置LDAP,单击确定。
以下配置项请遵循开源HDFS内容,详情请参见core-default.xml。
参数
示例
hadoop.security.group.mapping
org.apache.hadoop.security.CompositeGroupsMapping
hadoop.security.group.mapping.providers
shell4services,ad4users
hadoop.security.group.mapping.providers.combined
true
hadoop.security.group.mapping.provider.shell4services
org.apache.hadoop.security.ShellBasedUnixGroupsMapping
hadoop.security.group.mapping.provider.ad4users
org.apache.hadoop.security.LdapGroupsMapping
hadoop.security.group.mapping.ldap.url
ldap://emr-header-1:10389
hadoop.security.group.mapping.ldap.search.filter.user
(&(objectClass=person)(uid={0}))
hadoop.security.group.mapping.ldap.search.filter.group
(objectClass=groupOfNames)
hadoop.security.group.mapping.ldap.base
o=emr
保存配置。
单击右上角的保存。
在确认修改对话框中,输入执行原因,开启自动更新配置。
单击确定。
重启配置。
单击右上角的。
输入执行原因,单击确定。
通过SSH登录emr-header-1节点,配置Ranger UserSync并启用LDAP选项。
详情请参见Ranger Usersync集成LDAP。