我遇到了一点问题。3 个月前,我们在工作场所部署了一个 zentyal dc,因为它是针对同一台服务器对 Windows、Linux 和 Mac 进行身份验证的好方法。我在 Windows 上进行的身份验证非常顺利。我通过 ldap 对 ubuntu 客户端进行了身份验证,它们运行良好,但我在下一个操作系统上遇到了问题。
在我们的 centos 客户端上,我首先尝试实施与我们的 ubuntu 客户端上相同的 ldap 配置。然后我尝试使用 winbind 和 kerberos 进行身份验证。是的,这有效,但出现了一个大问题。当我运行 getent passwd 时,我发现 UID 和 GID 与 zentyal DC 不匹配,这意味着当我 nfs 挂载主文件夹时,用户无权进入它们,因为主文件夹具有 zentyal dc 的 UID 和 GID。我研究发现它与 idmaps 有关。我尝试了一些不同的方法,但最终放弃了。
这就是为什么我认为我应该再次尝试 ldap,因为它在 ubuntu 客户端上运行良好。所以我现在的问题是:如何配置 centos 6-7 机器以通过 ldap 对 zentyal DC 进行身份验证?
我的 ubuntu 机器上的 ldap.conf 如下所示:
base dc=mosek,dc=zentyal
uri ldap://172.16.0.5:390
ldap_version 3
binddn cn=zentyalro,dc=mosek,dc=zentyal
bindpw secretpasswd
scope sub
bind_policy soft
pam_password md5
nss_base_passwd ou=Users,dc=mosek,dc=zentyal?one
nss_base_passwd ou=Computers,dc=mosek,dc=zentyal?one
nss_initgroups_ignoreusers avahi,avahi-autoipd,backup,bin,colord,daemon,dnsmasq$
我如何将该配置转换为 centos 可以使用的内容?
我迄今所做的事情:
运行authconfig-tui
并设置 ldap
/etc/openldap/ldap.conf
在/etc/ldap.conf
CentOS 客户端上:
TLS_CACERTDIR /etc/openldap/cacerts
SASL_NOCANON on
URI ldap://172.16.0.5:390
BASE dc=mosek,dc=zentyal
/etc/nsswitch.conf
在 CentOS 客户端上:
passwd: files sss ldap
shadow: files sss ldap
group: files sss ldap
hosts: files dns
bootparams: nisplus [NOTFOUND=return] files
ethers: files
netmasks: files
networks: files
protocols: files
rpc: files
services: files sss
netgroup: files sss ldap
publickey: nisplus
automount: files ldap
aliases: files nisplus
运行命令ldapsearch -D "uid=tomas,ou=Users,dc=mosek,dc=zentyal" -Z -LLL -W uid=tomas
输出:
ldap_start_tls: Protocol error (2)
additional info: unsupported extended operation
Enter LDAP Password:
dn: uid=tomas,ou=Users,dc=mosek,dc=zentyal
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: passwordHolder
objectClass: systemQuotas
objectClass: krb5Principal
objectClass: krb5KDCEntry
objectClass: shadowAccount
objectClass: zentyalSambaLink
uid: tomas
loginShell: /bin/bash
gidNumber: 1901
homeDirectory: /home/tomas
krb5PrincipalName: [email protected]
krb5MaxLife: 86400
krb5MaxRenew: 604800
krb5KDCFlags: 126
uidNumber: 3000044
....
重新启动客户端,但运行命令时仍然没有名为 tomas 的用户id tomas
编辑:
我把我的编辑/etc/nslcd.conf
成这样:
# The user and group nslcd should run as.
uid nslcd
gid ldap
uri ldap://172.16.0.5:390
ldap_version 3
base dc=mosek,dc=zentyal
binddn cn=zentyalro,dc=mosek,dc=zentyal
bindpw secretpassword
# The distinguished name to perform password modifications by root by.
#rootpwmoddn cn=admin,dc=example,dc=com
# The default search scope.
scope sub
base group ou=Groups,dc=mosek,dc=zentyal?one
base passwd ou=Users,dc=mosek,dc=zentyal?one
仍然没有用户
编辑:
我尝试在调试模式下运行 nslcd,并得到以下结果:
[root@centosy ~]# nslcd -d
nslcd: DEBUG: add_uri(ldap://172.16.0.5:390)
nslcd: version 0.8.13 starting
nslcd: DEBUG: unlink() of /var/run/nslcd/socket failed (ignored): No such file or directory
nslcd: DEBUG: initgroups("nslcd",55) done
nslcd: DEBUG: setgid(55) done
nslcd: DEBUG: setuid(65) done
nslcd: accepting connections
在最后一行之后,它就卡住了,所以它永远不会接通 ldap 服务器