这个问题是想问个明白。在 Windows 中,如果你将客户端加入 AD 域,然后想重命名计算机对象,你可以“无缝”地进行重命名,而不会破坏客户端的 AD 成员身份。我想在 Linux(我的情况是 RHEL)中使用 SSSD 为加入 AD 域的主机实现相同的功能领域(或者手动通过网络广告加入)。
但我希望有一种让连接持久且通用的方法。如果这是自动的就好了,但如果我需要发出一些本地命令,那就没问题了。我担心的是,如果我连接然后更改计算机对象名称,那么从连接本地存储的信息将不匹配并破坏它。
设想
因此,为了便于理解,假设我想将 HOST7_CLONE 重命名为 HOST7。此场景有两个版本:
- 其中只有 AD 中名为“HOST7_CLONE”的计算机对象被重命名为“HOST7”。
- AD 中的计算机对象和本地 Linux 主机名都从“HOST7_CLONE”重命名为“HOST7”。
第一个问题是,如果计算机对象被重命名,本地 Linux 主机名是否需要更改,还是这些是单独的考虑因素?其次,即使不需要需要反而期望#2 会带来其他什么挑战吗?
假设不需要重命名本地 Linux 主机,为了简化事情,我们假设本地 Linux 主机名保持不变(#1)。
技术细节
接下来我注意到如果你运行净广告状态有一些字段可能相关:
name: host7_clone
objectGUID: x
userAccountControl: 69632
codePage: 0
countryCode: 0
lastLogon: 132307605314743751
localPolicyFlags: 0
pwdLastSet: 132307506720641880
primaryGroupID: 515
objectSid: z
accountExpires: 9223372036854775807
logonCount: 14
sAMAccountName: HOST7_CLONE$
sAMAccountType: 805306369
dNSHostName: host7_clone.core.org
servicePrincipalName: HOST/host7_clone.core.org
servicePrincipalName: HOST/HOST7_clone
尤其是对象GUID和服务主体名称看起来相关。对于对象GUID我希望在对象重命名后它仍然保持不变,希望是一个独立的和独特的值,而不管 AD 计算机对象名称如何。我寻找一种方法krb5配置文件和sssd.conf指定对象GUID但是,您想明确地进行绑定,却找不到任何东西。
因此,这让我想到了我认为的主要问题服务主体名称相应地更新为新的计算机对象名称。我能找到的解决这个问题的最佳方法是使用命令手动操作kerberos 命令:kadmin rename_principal。然而,这似乎有点深奥,我害怕开始弄乱 Kerberos 票证。
至于对象标识符,这是 AD 计算机对象本身的 SID 吗?如果是,objectSid 是否比对象 GUID 更适合作为唯一标识符?
我可能把这个问题想得太复杂了,但我只是想集思广益一下。关键是我想保持加入状态。退出和重新加入需要手动干预身份验证;而即使我需要发出一些其他手动命令(如 kadmin),我也可以编写脚本并自动执行,而无需人工干预(希望如此;至少这是目标)。
最后,我仍然没有概念性地知道需要采取什么措施才能使主机即使重命名后仍保持加入域。
如能提出建议我将非常感激。