我有一个 OpenLdap Server 2.4 在我的公司运行,我需要允许人们在我们的一个 Web 应用程序中更改他们的图片。该功能已经存在。LDAP 中的人没有任何权利编写自己的属性(特别是这里需要的“jpegPhoto”属性)。
我在文档中找到了这个
access to attrs=jpegPhoto
by self =xw
by * read
Run Code Online (Sandbox Code Playgroud)
我不知道如何使用这些行。要使用什么命令或其他什么。
如果有人能在处理过程中帮助我,那就太好了。
谢谢
如果您slapd.conf用作服务器配置文件,您需要应用的修改很简单,如果您使用新cn=config布局,则稍微复杂一些。无论如何,请注意:
仍然支持旧样式的 slapd.conf(5) 文件,但不推荐使用它,并且在未来的 OpenLDAP 版本中将取消对它的支持。
如 OpenLDAP文档中所述。
您需要修改您正在使用的数据库的配置。您的 OpenLDAP 服务器可能包含多个数据库,但您只对存储人物数据及其图片的数据库感兴趣。要列出所有可用的数据库,请使用:
slapcat -b cn=config
Run Code Online (Sandbox Code Playgroud)
此命令必须从 OpenLDAP 服务器执行。它将读取cn=config.ldif在您的slapd配置目录中命名的文件。就我而言,它位于
/usr/local/etc/openldap/slapd.d/cn=config.ldif
Run Code Online (Sandbox Code Playgroud)
请注意,slapcat -b cn=config只有当 shell 用户可以读取此文件时,它才会起作用。就我而言,文件是
-rw------- 1 ldap ldap 680 10 mar 21:04 /usr/local/etc/openldap/slapd.d/cn=config.ldif
Run Code Online (Sandbox Code Playgroud)
它属于 user ldap、 group ldap(它们是在 OpenLDAP 服务器安装期间创建的)。我从来没有为 user 设置过密码ldap,所以:
tl;dr读取此文件并成功运行的slapcat -b cn=config方法是root.
的输出slapcat -b cn=config很大,但您可以只考虑最后几行,其中列出了您感兴趣的数据库。例如,它可能是
dn: olcDatabase={1}mdb,cn=config
Run Code Online (Sandbox Code Playgroud)
例如,这是dn包含用户图片的数据库的专有名称 ( )。您希望允许用户更改他们的图片。
您可以修改运行的数据库配置(与前面的情况类似,您需要对该文件的写权限cn=config.ldif,因此您可以root像以前一样):
ldapmodify -f /path/to/yourfile -x -D "cn=config" -W
Run Code Online (Sandbox Code Playgroud)
-f /path/to/yourfile 是您的配置文件(见下文);-x 是Simple Authentication,如果你不使用SASL就需要它;-D "cn=config"是您用于输入 OpenLDAP 数据库的用户名。每个单个数据库通常都有一个超级用户(通常称为Manager)和一个全局超级用户。名为的用户cn=config是全局超级用户。您应该在 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
Run Code Online (Sandbox Code Playgroud)
我建议您更喜欢by self write而不是by self =xw(这将不允许用户阅读他们的图片)。小心在前面加上两个空格by,如本答案所述。
您现在可以再次运行slapcat -b cn=config以检查配置是否已被修改,以及olcAccess语句的顺序是否正确。如果没有,您可以删除它们并重新添加它们,知道每个新olcAccess规范将自动放在前面的规范之后。
如果您使用的是旧的slapd.conf配置文件,您只需要对它的写权限。通常是:
-rw------- 1 ldap ldap 2557 Dec 15 2016 slapd.conf
Run Code Online (Sandbox Code Playgroud)
因此,您可以root使用首选文本编辑器将其打开为。确定要修改的数据库部分(例如以以下开头的部分:
database mdb
maxsize 1073741824
suffix "dc=example,dc=com"
rootdn "cn=Manager,dc=example,dc=com"
Run Code Online (Sandbox Code Playgroud)
只需在本节底部添加您的行,如果其他access语句已经存在,请小心。同样,我建议使用by self write而不是self =xw.
无论您的配置如何,请slapd在修改后重新启动 OpenLDAP 服务器(进程)。
如果您需要更多示例和/或说明,请考虑:
cn=config 配置示例;| 归档时间: |
|
| 查看次数: |
9312 次 |
| 最近记录: |