我知道关于迁移到 LDAP 的问题并不是什么新鲜事。我现在已经搜索了很多信息,但我发现的问题是该主题的信息似乎相当分散。所以我希望有经验的人能给我指出正确的方向。
目前的情况:
- 小型企业,用户和桌面不断增长
- 大约 10 个 Fedora-20 桌面 / 3 个 Fedora-20 服务器
- 1 群晖 NAS DS1813+
- 大约 10 个用户
- 所有登录在桌面上都是本地的
- 用户在机器网络中没有相同的 UID 和 GID。
显然,使用 LDAP 这样的集中式用户目录变得越来越有吸引力。
问题:
不幸的是,我无法找到涵盖真实场景整个过程的可靠且完整的指南。
- 设置服务器和配置客户端:好的,根据我的阅读,这不是最简化的过程,但即使有点棘手,我相信这是可行的。
- 从所有机器迁移所有用户:这是“微妙”部分。显然,我不想冒任何信息丢失的风险。同样,我找到了一些关于迁移和MigrationTools的指南,但是这些来源都没有给我一种值得信赖的指南的感觉。典型场景:有一个 wiki 页面或带有说明的东西,以及一大堆抱怨该过程在某些时候失败的评论。提出的问题往往比给出的答案多得多。这怎么能让我觉得我可以安全地开始这个过程?
一些具体问题:
- 是否有一套最新的最佳实践/建议工具,对于此类迁移过程当然应该考虑?特别是关注现实生活场景?要遵循哪些操作顺序,要注意什么,如何将数据丢失的风险降到最低,如何将用户的停机时间降到最低等?
- 假设用户 'roberto' 在两台机器上存在(具有不同的 ID)。通过将 /etc/passwd 信息从两台机器迁移到 LDAP,它们是否在此过程中“合并”?如果没有,应该怎么做?
- 迁移是否可以分步完成,只供一个用户开始?可取吗?
- 我能想到的另一种(可能是幼稚的?)方法是:创建新的 LDAP 用户,然后将所有文件的所有权从旧的本地用户更改为这些新用户,然后删除旧的本地用户。这有意义吗?有没有以前的经验?
- LDAP 与 ACL 有什么关系?他们相处得好吗?
- 以下所需步骤是将用户的主目录集中到 NFS 上的共享空间。任何指向此后续步骤的指针也将受到欢迎,特别是如果链接到迁移到 LDAP。
首先,教程等问题是题外话。
一些想法:
cn=config
. 我的猜测是,这是因为这样的每次迁移都是不同的,而且根本没有黄金的方法可以继续。不可能编写一个适用于任何地方的教程,或者你最终会写一本非常大的书。我有一些关于如何进行的一般提示。这假定一个没有太多停机时间的逐步方法。
/etc/passwd
等,然后find
是chmod
属于用户的所有文件。bob
在他们的机器上命名)/etc/shadow
专业提示:使用 Linux 上的 OpenLDAP,如果您将{crypt}
密码类型前缀添加到 LDAPuserPassword
字段中,您可以重用密码(这样您就$1$E.1Saa9d$LcRBQDLfnzR6WF4HmbjpC/
变成{crypt}$1$E.1Saa9d$LcRBQDLfnzR6WF4HmbjpC/
/home
其他名称并将 NFS 共享挂载为/home
.这可能是一个或多或少简单的过程,但根据您的环境,问题可能(将会!)弹出。但是在沿着这条路做事的时候,你可以在它们出现时一一处理。没有必要让你处于一个有可能停止一切的全有或全无的情况。对于这样的项目来说,这是一个非常舒适的情况。
如果您最终在此过程中遇到具体问题,请在此处提出新问题。
对学习材料和教程的要求是题外话。
首先确定您的要求和范围。把它们写下来并让它们审查。
除了 LDAP 之外,还要考虑设置 Kerberos。单点登录的可能性通常会为您的最终用户带来真正的商业利益,并使他们更愿意忍受迁移过程中的中断。最终用户通常不关心一般的变化,并且很明显,他们认为操作改进不会带来直接的好处,而这些改进只会使系统管理员的生活受益。
FreeIPA在那里提供了一种集成方法。
清点现有的 passwd 和组文件以及
sudo
配置。不要忽视当前受用户名/密码保护的其他服务,这些服务可能受益于与中央用户目录(和 SSO)的集成,例如 Web 服务器上的安全目录等。测试您的方法、脚本等。进行备份并测试恢复它们。SSSD似乎是配置工作站和服务器以相对轻松地与目录(和 FreeIPA)集成的方式。
在工作站上挂载中央主目录通常是一个好主意,尤其是与自动挂载程序 (autofs) 结合使用时。在服务器上做同样的事情(也可以根据需要使用 auto-fs)似乎会引起更多的讨论。如果您确实走这条路,请仔细考虑您或您的用户是否应该合并它们。
数据丢失的风险相对较小,但是您确实会定期进行备份和测试恢复,对吗?
不,它们不会自动合并,因为用户帐户只能有一个 UID 号,并且每个用户名也必须是唯一的。由于文件所有权由文件系统存储在 UID 号上,丢弃一个 UID 将导致所有者失去对这些文件的权利。您需要从原始更改为所有者,以匹配您为同一真实人的重复用户决定的最终 UID 号。例如,
find -owner old-UID -exec chown new-UID '{}' \;
对于不同的真人来说,重复的用户名会导致其中一个人使用新的用户名,或者你们俩都相信分担痛苦。对于主要组用户也是如此。
身份验证方法主要是按系统定义的,而不是基于用户的,逐个主机迁移比按用户迁移更有意义。如果每个用户都有自己的工作站,您可以从这些工作站开始,一次一个,因为那里的任何问题都会限制对单个用户的影响。一旦所有用户都在目录中,那么做服务器就相对容易了。
对于集中式主目录来说,文件共享比块设备要好得多,所以绝对要选择 NFS。NFSv4 解决了很多经典 NFS 的问题,结合 Kerberos 也大大提高了安全性。
在工作站上转换身份验证可能与移动到集中式主目录同时发生。
至于您所针对的系统, 免费 IPA可能值得您使用,因为如果将来有人实现了一些 Active Directory 框,则很容易链接。
至于迁移.. 好吧,至少你说的是小规模,所以“蚀刻网络的草图端”是一种选择。
sudo 权限,显然这是至关重要的,对于少量的机器,任何 acl 的东西都应该很容易处理。
显然,您不能在 LDAP 和本地用户中拥有相同名称的用户,因此我将首先修复您的服务器并使用目录,然后移动到桌面上。