0

我想通过 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 可以解决组和用户。

任何想法都受到高度赞赏。

4

0 回答 0