我正在使用 OpenLDAP 手动实现 Kerberos,根据MIT 文档,我必须手动设置此 ACL:
access to dn.base=""
by * read
access to dn.base="cn=Subschema"
by * read
# Provide access to the realm container.
access to dn.subtree= "cn=EXAMPLE.COM,cn=krbcontainer,dc=example,dc=com"
by dn.exact="cn=kdc-service,dc=example,dc=com" write
by dn.exact="cn=adm-service,dc=example,dc=com" write
by * none
# Provide access to principals, if not underneath the realm container.
access to dn.subtree= "ou=users,dc=example,dc=com"
by dn.exact="cn=kdc-service,dc=example,dc=com" write
by dn.exact="cn=adm-service,dc=example,dc=com" write
by * none
access to *
by * read
根据我阅读的内容,我必须在 slapd.conf 中进行设置。
我认为 Suse 不使用 slapd.conf 所以我正在弄清楚我应该如何添加这些条目。我完全被困住了。
有人可以帮助我吗?
太感谢了。
OpenLDAP 的最新版本使用 LDAP 本身来维护其配置。一切都包含在名为
olcDatabase={0}config,cn=config
. 访问该数据库的权限通常授予机器上的本地用户root。为了修改配置,您首先要找到您的主数据库名称:
SASL EXTERNAL 方法检查运行命令的用户的 uid 和 gid (因此您必须是root)。
一旦你找到了你的数据库名称(比如
dn: olcDatabase={1}mdb,cn=config
),你需要创建一个authz.ldif
LDIF 格式的文件(比如 ):olcAccess
这将用新的属性替换您以前的所有属性。然后您需要将更新发送到 OpenLDAP 服务器:备注:在您的 LDAP 服务器上,您通常希望通过 URI
ldapi:///
(即 UNIX 套接字)访问服务器,因此您可以添加:到您的
ldap.conf
文件 (man 5 ldap.conf
),该文件在不同的发行版上具有不同的路径。例如在 Debian 上它位于/etc/ldap/ldap.conf
.