我想通过 nisNetgroups 在 389ds 中配置身份验证和授权。通过 389ds 客户端上的“getent”,我可以看到我的组和用户。如果我通过“”查询网络组,getent netgroup <my_netgroup>
我不会受到任何打击。
您在下面看到的我的网络组。
日志说:
tail -f /var/log/dirsrv/slapd-localhost/access
[29/Dec/2021:12:11:14.350690263 +0100] conn=851 op=13 SRCH base="ou=netgroup,dc=example,dc=com" scope=2 filter="(&(cn=qausers)(objectClass=nisNetgroup))" attrs="objectClass cn memberNisNetgroup nisNetgroupTriple modifyTimestamp [29/Dec/2021:12:11:14.351130562 +0100] conn=851 op=13 RESULT err=0 tag=101 nentries=0 wtime=0.000194950 optime=0.000443964 etime=0.000636159
最后的条目意味着:
err=0: no error
tag=101: it was a search
nentries=0: no hits for the search
但是使用相同参数的 ldap 搜索会产生网络组:
ldapsearch -x -D "cn=Directory Manager" -W -H ldaps://server.example.com -b ou=netgroup,dc=example,dc=com "(&(cn=qausers)(objectClass=nisNetgroup))" objectClass cn memberNisNetgroup nisNetgroupTriple modifyTimestamp
dn: cn=qausers,ou=netgroup,dc=example,dc=com
objectClass: nisNetgroup
objectClass: top
cn: qausers
nisNetgroupTriple: (,alice,)
nisNetgroupTriple: (,eve,)
nisNetgroupTriple: (server.example.com,-,-)
nisNetgroupTriple: (server,-,-)
modifyTimestamp: 20211229105114Z
我用 server.example.com 替换了真实的服务器名称并删除了所有引号。
我的 nsswitch.conf 包含
netgroup: files ldap sss
我的 sssd.conf 包含:
ldap_netgroup_search_base = ou=netgroup,dc=example,dc=com
ldap_netgroup_object_class = nisNetgroup
ldap_netgroup_triple = nisNetgroupTriple
我的 389ds 实例是通过
cat instance.inf
[general]
config_version = 2
[slapd]
root_password = my_pw
[backend-userroot]
sample_entries = yes
suffix = dc=example,dc=com
我的客户端是通过“authconfig-tui”配置的。
我已经使用“cat -vet /etc/sssd/sssd.conf”和“cat -vet /etc/nsswitch.conf”在配置文件中寻找特殊的、通常看不见的字符,但没有找到。
389ds 服务器和客户端是否通过 /etc/hosts 中的条目相互看到对方?我会假设“不”,因为 getent 可以解决组和用户。
任何想法都受到高度赞赏。