将多个桌面从 /etc/passwd 移动到 LDAP

将多个桌面从 /etc/passwd 移动到 LDAP

我知道有关迁移到 LDAP 的问题并不新鲜。我已经搜索了相当多的信息,但我发现的问题是,关于这个主题的信息似乎相当零散。所以我希望有经验的人能给我指明正确的方向。

目前的情况:

  • 小型企业,用户和桌面数量不断增长
  • 大约 10 个 Fedora-20 桌面 / 3 个 Fedora-20 服务器
  • 1 台 Synology NAS DS1813+
  • 大约 10 位用户
  • 所有登录都在桌面本地进行
  • 用户在机器网络上不会具有相同的 UID 和 GID。

显然,使用 LDAP 等集中式用户目录变得越来越有吸引力。

问题

不幸的是,我找不到可靠的完全的涵盖真实生活场景整个过程的指南。

  • 设置服务器并配置客户端:好的,从我所读的内容来看,这不是最简化的过程,但即使有点棘手,我相信这是可行的。
  • 从所有机器迁移所有用户:这是“微妙”的部分。显然,我不想冒任何信息丢失的风险。同样,我找到了一些关于迁移的指南,以及关于迁移工具,但这些来源都没有给我提供值得信赖的指南的感觉。典型的情况是:有一个 wiki 页面或类似的东西,上面有说明,还有一大堆评论抱怨程序在某个时候失败了。提出的问题往往比给出的答案多得多。这怎么能让我感觉我可以安全地开始这个过程呢?

一些具体问题:

  • 是否有一套最新的最佳实践/建议工具,人们在进行此类迁移时一定要考虑?特别是要关注现实生活中的场景?要遵循哪些操作顺序,要注意什么,如何最大限度地降低数据丢失的风险,如何最大限度地减少用户的停机时间,等等?
  • 假设用户“roberto”存在于两台机器上(具有不同的 ID)。通过将 /etc/passwd 信息从两台机器迁移到 LDAP,它们是否会在此过程中“合并”?如果没有,应该怎么做?
  • 迁移是否可以分步进行,仅针对一个用户开始?这样可取吗?
  • 我能想到的另一种(也许是幼稚的?)方法是:创建新的 LDAP 用户,然后将所有文件的所有权从旧本地用户更改为这些新用户,然后删除旧本地用户。这有意义吗?以前有什么经验吗?
  • LDAP 与 ACL 有何关系?它们能很好地协同工作吗?
  • 下一步是将用户的主目录集中到 NFS 上的共享空间。任何指向此后续步骤的提示也都值得欢迎,尤其是如果与迁移到 LDAP 相关。

答案1

首先,教程等的问题是无关

一些想法:

  • 您说得对,关于这方面的信息很分散,而且往往是过时的和不可靠的。例如,您会发现很多关于如何使用配置文件配置 OpenLDAP 的信息,但关于的信息却很少cn=config。我猜这是因为每次这样的迁移都是不同的,而且根本没有万能的方法。不可能写一个适用于所有地方的关于这方面的教程,否则您最终会写一本非常厚的书。
  • 这意味着你必须把各个部分拼凑起来,并根据你的情况进行调整。这是没有办法的。不过你很幸运,因为你的环境看起来很小而且很简单,如果需要的话,所有必要的事情都可以在一个周末完成。
  • 虚拟化工具对此有很大帮助,因为您可以轻松地在笔记本电脑上模拟所有内容,而不会影响任何人。

我有一些关于如何进行的一般性提示。这假设采用循序渐进的方法,不会有太多的停机时间。

  • 创建所有用户的列表。
  • 手动确保它们在所有系统上具有相同的 UID 等。大多数情况下,这意味着编辑/etc/passwd等,然后编辑find属于chmod用户的所有文件。
  • 如果您的用户名有冲突,则应在此步骤中解决(例如,销售和客户服务部门的两个 Bob 都bob在他们的机器上命名)
  • 此时,您可以将具有统一 UID 的所有用户添加到 LDAP 数据库。专业提示:使用 Linux 上的 OpenLDAP,/etc/shadow如果您将{crypt}密码类型前缀添加到 LDAPuserPassword字段中(因此您将$1$E.1Saa9d$LcRBQDLfnzR6WF4HmbjpC/变成{crypt}$1$E.1Saa9d$LcRBQDLfnzR6WF4HmbjpC/
  • 您现在可以逐台配置您的机器以根据 LDAP 进行身份验证,并且用户帐户仍应使用相同的密码(但请记住删除/重命名本地用户)。
  • 为主目录创建一个 NFS 服务器并确保它已安装在任何地方(iSCSI 有不同的用途)。
  • 将用户主目录复制到 NFS 共享,将旧目录重命名/home为其他名称,然后将 NFS 共享挂载为/home

这可能是一个或多或少简单的过程,但根据您的环境,可能会(会!)出现问题。但是,当按照这种方式做事时,您可以逐一处理它们。您不会陷入全有或全无的境地,而这种境地可能会停止一切。对于这样的项目来说,这是一种非常舒适的境地。

如果您最终有具体问题,请在此处提出新问题。

答案2

学习材料和教程的请求是无关

应遵循哪些操作顺序、应注意什么、如何最大限度地降低数据丢失的风险、如何最大限度地减少用户停机时间等?

首先确定您的需求和范围。把它们写下来并让别人审查。
除了 LDAP 之外,还要考虑设置 Kerberos。单点登录的可能性通常会为您的最终用户带来真正的商业利益,并使他们更愿意忍受迁移过程中的中断。最终用户通常不关心一般的变化,而且很明显,他们认为这些只是对系统管理员有益的运营改进不会带来任何直接的好处。
免费IPA提供了一种综合的方法。

盘点现有的密码和组文件以及sudo配置。不要忽视当前受用户名/密码保护的其他服务,这些服务可能会受益于与中央用户目录(和 SSO)的集成,例如 Web 服务器上的安全目录等。

测试您的方法、脚本等。进行备份并测试恢复它们。固态存储系统似乎是配置工作站和服务器以便与目录(和 FreeIPA)集成的方式相对轻松。

在工作站上安装中央主目录通常是一个好主意,尤其是与自动安装器 (autofs) 结合使用时。在服务器上执行相同操作(也根据需要使用 auto-fs)似乎会引发更多讨论。如果您确实选择这种方式,请仔细考虑您或您的用户是否应该合并它们。

数据丢失的风险相对较小,但您确实会定期进行备份和测试恢复,对吗?

假设用户“roberto”存在于两台机器上(具有不同的 ID)。通过将 /etc/passwd 信息从两台机器迁移到 LDAP,它们是否会在此过程中“合并”?如果没有,应该怎么做?

不会,它们不会自动合并,因为用户帐户只能有一个 UID 号,并且每个用户名也必须是唯一的。由于文件所有权由文件系统存储在 UID 号上,因此丢弃一个 UID 将导致所有者失去对这些文件的权限。您需要将原始所有者更改为与您为同一真实用户的重复用户决定的最终 UID 号相匹配。例如,find -owner old-UID -exec chown new-UID '{}' \;不同真实用户的重复用户名将导致其中一个人有一个新的用户名,或者你们俩都相信可以共担痛苦。

对于主要用户所在的组来说同样如此。

迁移是否可以分步进行,仅针对一个用户开始?这样可取吗?

身份验证方法主要是针对每个系统而不是针对每个用户定义的,逐个主机迁移比针对每个用户迁移更有意义。如果每个用户都有自己的工作站,您可以一次一个地从这些工作站开始,因为那里的任何问题都会限制对单个用户的影响。一旦所有用户都在目录中,那么执行服务器就相对容易了。

下一步是将用户的主目录集中到某个网络空间(NFS 或 iSCSI)。任何指向此后续步骤的提示都会受到欢迎,尤其是如果与迁移到 LDAP 相关。

与块设备相比,文件共享更适合集中主目录,因此绝对要选择 NFS。NFSv4 解决了传统 NFS 的许多问题,并且与 Kerberos 结合后,安全性也得到了很大提高。

工作站上的身份验证转换可以与向集中主目录的移动同时进行。

答案3

至于你瞄准的系统,它可能值得你去尝试 免费 IPA因为如果将来有人实现了一些 Active Directory 框,那么链接起来就非常容易。

至于迁移......好吧,至少你谈论的是小规模,所以“蚀刻网络草图端”是一个选择。

Sudo 权限,显然这很重要,因为对于那么少量的机器,任何 acl 内容都应该很容易处理。

显然,您不能在 LDAP 和本地拥有同名的用户,因此,我会首先修复您的服务器并将其纳入目录,然后再转到桌面。

相关内容