kerberos用户映射 - wbwangk/wbwangk.github.io GitHub Wiki

参考
kerberos用户到本地用户的配置是core-site.xml中的“hadoop.security.auth_to_local”。例子:

           hadoop.security.auth_to_local

                 RULE:[1:$1@$0](.*@YOUR.REALM)s/@.*//
                 RULE:[2:$1@$0](hdfs@.*YOUR.REALM)s/.*/hdfs/
                 DEFAULT

DEFAULT是默认值,表示把主体的第一部分直接映射为UNIX用户。
RULE有三部分组成:基础过滤替换

基础

基础部分由数字和模板组成。数字(1或2)表示主体由几部分组成(不包括领域)。模板定义了主体各部分的转换规则:$0表示领域,$1表示主体的第1部分,$2表示主体的第2部分。
例如:

[1:$1@$0] 将 “[email protected]” 转换为 “[email protected]”
[2:$1] 将 “username/[email protected]” 转换为 “username”
[2:$1%$2] 将 “username/[email protected]” 转换为 “username%admin”

过滤

过滤是括号中的正则表达式,必须是要应用规则的生成字符串。
例如:

“(.*%admin)” 将匹配以“%admin”结尾的字符串
“(.*@SOME.DOMAIN)” 将匹配以“@SOME.DOMAIN”结尾的字符串

替换

最后,替换是将正则表达式转换为固定字符串的sed规则。 例如:

“s/@ACME.COM//” 表示将“@ACME.COM”删除(替换为空串)。
“s/@[A-Z]*.COM//” 表示删除以“@”开始紧跟一个大写字符串,并以“.COM”结尾的字符串。
“s/X/Y/g” 将所有的 “X”替换为“Y”

sed常见命令由字符s和三个斜杠(/)组成,表示将前两个斜杠之间的内容替换为后两个斜杠之间的内容。/g表示替换到行尾,如果仅是/表示替换一次。