0

我正在使用 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。

任何帮助,将不胜感激。谢谢。

4

1 回答 1

0

好的,问题出在三元组上,它需要用括号括起来才能工作。

于 2020-02-17T21:48:34.800 回答