我创建了一个普通的 linux 用户(在 Raspbian Buster 上)。现在我已经设置了一个 LDAP 目录,并希望该用户使用 LDAP 进行身份验证。我使用相同的用户名向目录添加了一个用户,认为 LDAP 会优先,但是,情况似乎并非如此,本地帐户优先。
我可以以另一个不是本地用户的 LDAP 用户身份成功登录。
如何将该用户转换为 LDAP 用户而不删除该用户的所有数据?
答案1
如果不需要本地用户,可以运行userdel user
删除本地用户。如果您不指定-r
或-f
标志,则用户主目录应保持不变。 (您也可以手动从 中删除用户/etc/passwd
)。
删除后,您可以运行getent passwd user
检查 LDAP 中的条目是否已返回。 (注意:据我所知,userdel 不会删除 LDAP 条目,但为了安全起见,您可以在/etc/nsswitch.conf
运行 userdel 之前禁用 LDAP 服务。)
最后,您可能应该运行chown -R user:user /home/user
来设置 LDAP 用户的正确 uid/gid(如果它们不同)。
优先级由 中的顺序定义/etc/nsswitch.conf
。
我认为,也可以通过 PAM 对 LDAP 用户进行身份验证,PAM 也有一个本地 /etc/passwd 条目,并在 PAM 中定义身份验证的优先级,但我不确定是否会推荐这样做。