如果您使用的是slapd.conf
作为服务器配置文件,如果您使用新的,则有点复杂cn=config
布局。无论如何,要小心:
旧样式的 slapd.conf(5) 文件仍然受支持,但它的使用已被弃用,并且在未来的 OpenLDAP 版本中将取消对它的支持。
正如 OpenLDAP 中所述文档 http://www.openldap.org/doc/admin24/slapdconf2.html.
1) cn=配置布局
您需要修改正在使用的数据库的配置。您的 OpenLDAP 服务器可能包含多个数据库,但您只对存储人员数据及其图片的数据库感兴趣。要列出所有可用的数据库,请使用:
slapcat -b cn=config
该命令必须从 OpenLDAP 服务器执行。它将读取名为的文件cn=config.ldif
在你的slapd http://www.openldap.org/doc/admin24/slapdconf2.html配置目录。就我而言,它位于
/usr/local/etc/openldap/slapd.d/cn=config.ldif
小心一点slapcat -b cn=config
仅当 shell 用户可以读取此文件时才有效。就我而言,该文件是
-rw------- 1 ldap ldap 680 10 mar 21:04 /usr/local/etc/openldap/slapd.d/cn=config.ldif
它属于用户ldap
, group ldap
(它们是在 OpenLDAP 服务器安装期间创建的)。我从未为用户设置过密码ldap
, so:
tl;dr读取此文件并成功运行的方法slapcat -b cn=config
是root
.
的输出slapcat -b cn=config
很大,但您可以只考虑最后几行,其中列出了您感兴趣的数据库。例如,它可以是
dn: olcDatabase={1}mdb,cn=config
例如,这是专有名称(dn
)包含用户图片的数据库。您希望允许用户更改他们的图片。
可以修改运行中的数据库配置(与前面的情况类似,需要对文件有写权限cn=config.ldif
,所以你可以是root
像之前一样):
ldapmodify -f /path/to/yourfile -x -D "cn=config" -W
-
-f /path/to/yourfile
是您的配置文件(见下文);
-
-x
是Simple Authentication,如果不使用SASL则需要;
-
-D "cn=config"
是您用于进入 OpenLDAP 数据库的用户名。每个数据库通常都有一个超级用户(通常称为Manager
),以及一个全局超级用户。用户名为cn=config
is the 全局超级用户。您应该在 OpenLDAP 服务器安装期间配置其密码;如果您没有此密码,您可能无法修改数据库配置;
-
-W
要求您输入用户的密码cn=config
.
配置文件,位于/path/to/yourfile
,必须是格式如下的纯文本文件:
dn: olcDatabase={1}mdb,cn=config
changetype: modify
add: olcAccess
olcAccess: to attrs=jpegPhoto
by self write
by * read
我建议你更喜欢by self write
代替by self =xw
(这将不允许用户阅读他们的图片)。小心放two之前有空格by
,如所述这个答案 https://serverfault.com/a/490639.
您现在可以再次运行slapcat -b cn=config
检查配置是否已修改,以及是否olcAccess
语句的顺序正确。如果没有,您可以删除它们并再次添加它们,因为每个新的olcAccess
规格将自动放在前面的规格之后。
2)slapd.conf布局
如果您使用的是旧版slapd.conf
配置文件,您只需要对其具有写入权限。通常是:
-rw------- 1 ldap ldap 2557 Dec 15 2016 slapd.conf
因此,您可以将其打开为root
,使用您喜欢的文本编辑器。确定您要修改的数据库部分(例如以以下内容开头的部分):
database mdb
maxsize 1073741824
suffix "dc=example,dc=com"
rootdn "cn=Manager,dc=example,dc=com"
并简单地在本节的底部添加您的行,如果有其他行,请小心access
声明已经存在。再次,我建议使用by self write
代替self =xw
.
无论您的配置如何,请重新启动 OpenLDAP 服务器(进程slapd
)修改后。
如果您需要更多示例和/或说明,请考虑:
- A
cn=config
配置示例 http://www.openldap.org/doc/admin24/slapdconf2.html#Configuration%20Example;
-
访问控制 https://www.openldap.org/doc/admin24/access-control.html对于 OpenLDAP 数据库;
- the OpenLDAP 站点 http://www.openldap.org/,与整个
文档。