我有大约 50 台服务器,它们同时运行 RHEL 和 CentOS,并且都使用本地身份验证。我们即将最终将这些服务器置于单个单元的控制之下,并且我们在这些系统中拥有大量本地帐户。我不确定是否要从我们现有的 Active Directory 中通过 LDAP 进行身份验证,还是使用 CentOS Directory Server 之类的东西,但无论哪种方式......我可以将中央帐户映射到这些系统上的不同本地帐户吗?我真的不想担心更改任何现有权限或任何事情。
假设我在 3 个不同的系统上有 joeuser1,他在每个系统上都有不同的 UID,他的组也有不同的 GID。有没有办法通过中央身份验证将它们全部绑定在一起?
答案1
如果您决定在整个组织内同步 uid/gid,这将对您有很大帮助,整体维护工作将变得容易得多。
并且可以以一种相对轻松的方式实现:
- 创建或配置您的中央目录
- 决定您想要使用的 uid/gid 空间(确保它不与您现在正在使用的任何内容重叠,并且不要重新映射仅本地于主机的 uid - 系统和守护进程帐户等)
- 为每台机器安排维护休息时间
- 准备一个脚本,在重新映射用户后重置所有权;这样的方法对我来说曾经有效:
find /path/to/what/has/to/be/preserved -printf "chown -c %u:%g \"%h/%f\"\n" > preserve
- 切换到新的目录服务
- 删除或重新映射 /etc/passwd 和 /etc/group 的非系统部分
- 通过运行生成的脚本恢复文件/目录所有权(sh retain 即可)
- 冲洗,重复,获利!
笔记:
- 生成的脚本根本不高效,因为它逐个文件更改所有权;但它应该很好地展示总体思路。
- 如果您有任何 suid/sgid 二进制文件和目录,也请将它们记录在脚本中,例如将 printf 子句更改为“chown -c %u:%g \"%h/%f\"\nchmod -c %m \"%h/%f\"\n”
答案2
大多数身份验证系统使用 UID 和 GID 来映射用户。因此,如果用户要出现在多个地方,则它们匹配非常重要。而拥有中央目录服务的目的就是避免出现多个位置。
UID 重新映射是那些在小型网站上不太麻烦的事情之一,而如果你正在处理较大的网站,那么它就是强制性的,因为回报(避免在多个地方管理事情)的增长速度比痛苦(把事情做好)更快。
答案3
是的,可以。配置起来相当简单,而且问题不大(只要保持时钟同步!)。
有关操作的说明位于 RHEL 部署指南中。
如果您有 AD,我建议您使用它,因为我相信将 Linux 同步到 AD 可能比将 Windows 同步到 AD 以外的任何其他东西都更容易。
答案4
我已经推荐过这款产品几十次了,但它拯救了我。它叫做同样开放,它是免费和开源的,它可以使您的机器根据 Active Directory 进行身份验证。
UID/GID 是一个哈希,这使得它们在整个基础架构中通用。通过实施它,我统一了公司中几乎所有的身份验证机制。Shell 访问、apache 身份验证、samba 等。由于我使用的是 Active Directory,因此所有可以使用 LDAP 的东西都可以对其进行身份验证,所以现在我的用户的帐户在机器、他们的桌面、我们的内部 jabber 服务器、我们的 SSL VPN 集中器等上都是相同的。
我极力推荐它。