我们使用 Puppet 来管理我们的 Linux 桌面计算机,并使用 SSSD 通过中央身份验证系统来验证用户身份。最近,在设置几台新机器时,我们发现 puppet 在安装软件包的过程中停止运行。罪魁祸首是 kdm 包,当最近将“kdm”用户名添加到中央授权机构时,它会尝试添加本地“kdm”用户。
通常我看到使用命名空间划分机制(例如 Windows 域)来处理此问题,但是我在 Linux 管理方面的短暂时间并没有真正帮助我找到一个好的方法来解决此问题。
我可以想出一些关于如何解决这个问题的一般想法(从最优雅到最不优雅):
- 找出一个好的方法将系统用户名与中心用户名区分开来,这样将来就不会出现此类冲突。
- 使用 dpkg 的一些标志来强制 kdm 包添加不同的用户名(或使用 nobody)。
- 强制 dpkg 添加用户。这将不允许用户登录我们的系统,但无论如何这很可能不会成为问题。
当然,(2)和(3)并不能解决根本问题,但如果(1)类的解决方案对我们当前的设置特别有害,那么(2)或(3)类的解决方案可能更为可取。
答案1
想出一个更好的用户命名方案......(或强制“kdm”使用不同的登录凭据)
多年来,当我继承了使用三个字母用户名的商业 Unix 系统时,我不得不吸取这个教训。将这些服务器迁移到 Linux 会暴露与系统服务帐户的冲突。最糟糕的情况是兰迪·P·麦克唐纳或用户 ID”转速“。 这RPM 包管理器在基于Redhat的系统中采用“rpm”账户。
随着时间的推移,还发生了其他冲突。用户名“adm”、“lp”和“ftp”有时也会出现问题。
我的永久解决方案是修改用户命名方案,使其更加强大。三个首字母的可扩展性不强。
这是了解环境的一部分。您使用桌面 Linux(可能使用 KDM 作为窗口管理器,而不是 Gnome),从权限和系统操作的角度来看,“kdm”用户是关键。
您对单个包所做的任何更改dpkg
都会要求您在升级系统、迁移到新的操作系统版本等时记住该步骤。添加用户可能会导致奇怪的权限。