2013-08-20 33 views
0

我与Kerberos配置(特别是krb5.conf文件)工作,有一个叫auth_to_local映射一个特定的部分,它被定义如下:这个替换字符串是如何工作的?

http://web.mit.edu/Kerberos/krb5-1.9/krb5-1.9.5/doc/krb5-admin.html

一个典型的映射条目看起来是这样的:

auth_to_local = RULE:[1:$0\$1](^DOMAIN\.COM\\.*)s/^DOMAIN\.COM/DOMAIN/

手册页指出确切的语法,但基本上上面的行会找一个像UPN:

[email protected]并将其转换为DOMAIN.COM \ user并查看它是否可以与DOMAIN.COM匹配,如果是,请仅替换DOMAIN。所以,最终结果将是DOMAIN \ user。

但是,我们有一个入口(的作品),格式为:

auth_to_local = RULE:[1:$0\$1](^DOMAIN\.COM\\.*)s/^DOMAIN\.COM\\//

表面上看,它与某种空值代替DOMAIN.COM,但我不能解码什么这个语法的意思就是"\\//"

我不确定这个规则是否使用标准的sed类型语法来替代......有人可能会下注一些猜测来解释这个吗?

+0

我会假设'\ /'是一个正斜杠,被一个反斜杠转义。 – FrankPl

+0

,但替换部分的格式是's//<要替换的字符串>',因此该行的字面翻译将替换为'//'的'DOMAIN.COM \',这将是null,对吗?你的答案对我来说并不是什么都知道的,但由于某种原因,它让我以一种新的眼光来看待这一点,这对于我们所看到的最终应用来说是有意义的。谢谢。 – BenH

+0

知道=新...某些原因,我不能编辑:/ – BenH

回答

0

这只是匹配DOMAIN.COM/ \ /需要注意的是,它是一个通常被视为字符串一部分的特殊字符。注意:\ /不是大写V.

+0

谢谢 - FrankPI的评论已经转向我以不同的方式看待它。它不匹配'DOMAIN.COM /'它实际上与DOMAIN.COM \匹配,并用null替换它,因为两个'/'字符之间没有任何内容。我现在已经掌握了一切! – BenH

+0

@ user2700942很高兴你知道了。 – Jiminion