我正在使用 sssd 测试 openldap 作为 ssh 登录和 sudo 规则的来源。
到目前为止,我可以根据 LDAP 的规则使用 LDAP 进行身份验证(密码和密钥)和 sudo。
但我也希望能够使用网络组来控制用户有权登录的位置。
在 LDAP sudo 规则中对主机使用 ALL 时,用户可以使用 sudo。如果我创建一个将在 sudo 规则中使用的 nisNetgroup,则用户无法使用 sudo。
这是我的 sssd conf 中用于网络组的内容:
sudo_provider = ldap
####-- netgroups
ldap_sudo_include_netgroups = True
ldap_netgroup_search_base = ou=HostGroups,dc=redacted,dc=com
ldap_netgroup_object_class = nisNetgroup
ldap_netgroup_triple = nisNetgroupTriple
我netgroup: sss
在 /etc/nsswitch.conf 文件中
我在 LDAP 中的 nisNetgroup:
dn: cn=blabla,ou=HostGroups,dc=redacted,dc=com
cn: blabla
nisNetgroupTriple: test-app01,,
objectClass: nisNetgroup
objectClass: top
在 sssd 日志中,我可以看到记录的三重 beign:
[sdap_attrs_add_ldap_attr] (0x2000): Adding netgroup triple [test-app01,,] to attributes of [blabla].
但是当我运行 getent 时,我看不到三元组:
$getent -s sss netgroup blabla
blabla
并且用户不能sudo。
任何帮助,将不胜感激。谢谢。