有很多 答案有效地说,应该用ldap来代替puppet来pipe理实际的用户。 我倾向于基于扩展视angular达成一致。 新员工的入职应由支持团队完成,而不是由系统pipe理员添加新的用户资源。
然而,pipe理SSH密钥和授权密钥(以及sudo访问和用户configuration文件)似乎是一个完美的木偶工作。
pipe理每个用户的密钥和configuration的标准方式是什么? 木偶可以在这里增加ldap吗? 如果员工变成stream氓,我们需要从1000个不同的authorized_keys文件中撤销密钥,会发生什么?
我不同意格雷格沃森。
创build帐户的副本意味着你有问题保持同步。 拥有一个authentication信息源,消除了很多复杂性,并且LDAP更容易集成到其他服务(Web,邮件等)中。
就sudo访问而言 – 如果您基于团队而不是个人configurationsudoers,则可以通过LDAP轻松控制访问设施。 它需要更多的前瞻性规划 – 但从长远来看更容易pipe理 – 您pipe理安全策略而不是数据文件。
让ssh密钥在其他机器上可用最好通过使用某种networking文件系统来处理 – 它可能是NF / Samba,但复制或共享文件系统提供相同的目标(具有不同的副作用)。
第一步应该始终是定义您的安全模型 – 允许本地configuration为破坏该模型提供了巨大的空间。
我很高兴: http : //www.freeipa.org/page/Main_Page
它包含您需要的一切 – 用户,sudoers,ssh密钥,甚至selinuxconfiguration。
我实际上是说Puppet比LDAP更好的解决scheme,因为它没有SPoF(login是本地的,但集中pipe理)。
在任何情况下,对于你的“stream氓用户”的情况下,你可以使用ssh_authorized_key Puppet资源,并ensure => absent他们的密钥。 然后使用Mcollective / cron填充这个。
请参阅文档: http : //docs.puppetlabs.com/references/latest/type.html#sshauthorizedkey
难点在于Puppetpipe理用户主目录(可能存在也可能不存在)中的文件。 您可以通过在SSHconfiguration中自定义authorized_keys文件位置(即/var/lib/ssh/authorized_keys/%u )来缓解这一点。