如何在 OpenLDAP 2.4 中使用 olcAccess 向用户添加权限

2023-12-29

我的公司运行着一台 OpenLdap Server 2.4,我需要允许人们在我们的 Web 应用程序之一中更改他们的图片。 该功能已经存在。 LDAP 中的人们没有任何权利编写自己的属性(特别是这里“jpeg照片”需要属性)。

我在文档中找到了这个

access to attrs=jpegPhoto
    by self =xw
    by * read

我不知道如何使用这些线。使用什么命令或者其他什么。

如果有人可以帮助我处理它,那就太好了。

Thanks


如果您使用的是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=configroot.

的输出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/,与整个 文档。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 OpenLDAP 2.4 中使用 olcAccess 向用户添加权限 的相关文章

  • Active Directory 中在线的计算机列表

    我使用这段代码输出网络上所有计算机的列表 语言是 jscript net 但这只是 C 的一个小操作 var parentEntry new DirectoryEntry parentEntry Path WinNT for var chi
  • 为什么我从 LDAP 属性中获取“System.__ComObject”?

    我将是第一个承认这是被删减和过去的节目的人 我以前没看过AD 实在是看不懂 我想这就是我的下一个研究 不管怎样 这是一些测试代码 它应该显示到期日期 要么以可读的形式 要么以刻度显示 这并不重要 这是一个 Web 表单 在开发 Web 服务
  • 查找 Active Directory 中特定用户所属的组/分发列表

    假设我在 OU Groups DC contaco DC com ct 我可以找到子 OU 中的所有组 但找到用户 bobdole 所属的所有组的唯一方法是查看每个组 看看他是否在 成员 字段中 不幸的是 当我查看用户 bobdole 时
  • 如何在 Windows 中向 AD 组添加自定义属性?

    我想知道如何编写这个脚本 另外 是否有一个开箱即用的 GUI 工具可以让我做到这一点 您是指扩展 AD 架构时交换添加的 CustomField 属性吗 如果是这样 那么你可以使用ADSIEdit http technet microsof
  • LDAP:ldap.SIZELIMIT_EXCEEDED

    我正在得到一个ldap SIZELIMIT EXCEEDED当我运行此代码时出错 import ldap url ldap
  • 活动目录与 OpenLDAP

    LDAP 协议的这两种实现之间的主要区别是什么 异构环境哪个更好 关于这个主题有什么好的网站吗 以下是我立即知道的一些差异 OpenLDAP 可以称为通用 LDAP 服务器 类似于许多其他供应商的 LDAP 服务器 Fedora DS 38
  • 保持 LDAP 会话

    在 PHP 中 假设我在第 1 页有一个 LDAP 连接 ldapconn ldap connect ldapserver if ldapconn binding to ldap server ldapbind ldap bind ldap
  • PHP LDAP:如何搜索用户是否在组中?

    如何使用 php ldap 模块检查用户是否属于某个组 我对 ldap 完全陌生 因此有点困惑 通过谷歌搜索 到目前为止我已经想出了这个 ds ldap connect ldapHost ldapPort if ds r ldap bind
  • 如何从 LDAP 目录中提取 TNSNames

    我一直在尝试查询 LDAP 目录服务器以检索 tnsnames 条目 我可以使用以下代码 但味道不对 是因为它是错误的 还是因为查询 ldap 涉及几个间接级别 let identifier LdapDirectoryIdentifier
  • Symfony2 中的 LDAP 集成

    我是 symfony 和 LDAP 的新手 有没有在 symfony2 中集成 LDAP 的分步教程或视频 我不知道有关 Symfony2 中 LDAP 的任何教程或视频 但这里有我在许多项目中使用的 2 个包 OpenSkyLdapBun
  • 使用 C# 获取 Active Directory 用户数据

    我想获取有关特定用户的数据 我知道该用户的 OU 路径 但无法使用该 OU 路径获取信息 总是说找不到用户 谁能告诉我我需要更改搜索过滤器吗 请帮忙 Code 用户路径 abc ds xyz net fGroup xcxc Users 12
  • 如何在非交互模式下配置 pam-auth-update?

    I wanted to enable PAM module packages in non interactive mode Running pam auth update will prompt a wizard to enable th
  • 无法验证 SSL 证书

    我想做的事 与以下人员保持干净的联系openssl connect到远程站点 网站似乎是自签名的 What I m getting CONNECTED 00000003 depth 0 CN DC01 home pri verify err
  • 当建立 TLS / LDAP 或 TLS / HTTP 连接时,线路上会发生什么?

    我正在重新表述我的问题 希望能得到更好的答复 我问了类似的问题这里服务器故障 https serverfault com questions 178561 what are the exact protocol level differen
  • python 中的 LDAP 查询

    我想在 ldap 中执行以下查询 ldapsearch h hostname b dc ernet dc in x uid w2lame objectClass posixAccount gidnumber ldapsearch h hos
  • 带有 LDAP 身份验证的 SVN 不起作用

    我首先从我的设置开始 为此我们有 2 台服务器 Server1 将用于所有源代码 文件等 在 Server2 上 我们拥有所有用户信息和登录信息 两台服务器都运行在 Centos 6 4 上 现在我们要在 server1 上设置一个 SVN
  • PHP LDAP 查询获取特定安全组的成员

    我正在努力让 LDAP 查询工作来为我提供安全组的成员 我们的活动目录结构设置为 DC domain DC co dc uk然后 我们有一个名为 公司用户 的 OU 其中有一个用于 IT 和标准的 OU 在这些中我们创建了用户 所以我被设置
  • 使用 objectGUID 进行查询 - Spring LDAP 模板

    我正在尝试获取 存储并依次使用 objectGUID 来查询 Active Directory 为了获取用户属性我正在使用以下 public static class MyDnKeyValueAttMapper implements Att
  • 使用 JNDI 添加 LDAP 条目

    我正在尝试使用 JNDI 将条目添加到 LDAP 服务器 我可以成功地从 LDAP 服务器读取条目 但是当我尝试添加新条目时出现错误 我检查了各种方法但都失败了 private String getUserAttribs String se
  • 使用用户名进行 Java LDAP 身份验证

    好吧 这让我发疯 我正在尝试使用 Java 创建 LDAP 身份验证 如果我在 SECURITY PRINCIPAL 中使用我的名字和姓氏 一切都很好 这是我的代码 try Hashtable

随机推荐

  • 复制实体框架对象

    我有一个 EF4 1 X 类 我想复制它及其所有子记录 X Y 和 X Y Z 现在 如果我执行以下操作 它将返回错误 属性 X ID 是对象关键信息的一部分 无法修改 public void CopyX long ID var c db
  • 实时统计:MySQL(/Drizzle) 还是 MongoDB?

    我们正在开发一个项目 该项目将提供某些操作 例如点击 的实时统计数据 每次点击时 我们都会记录日期 年龄和性别 这些来自 Facebook 位置等信息 我们正在讨论存储这些信息并将其用于实时统计的最佳位置 我们将显示汇总统计数据 例如 点击
  • 导航子菜单将 div 向下推(响应式)

    我创建了一个带有子菜单下拉菜单的菜单 然而 子菜单在更大的屏幕上运行得很好 可以停留在那里而不是向下推 但为了响应 我想要的是子菜单将 div 向下推 下面的代码如下 navigationMenu clear both width 100
  • 使用 dplyr 对多列求和

    我的问题涉及对数据框的多个列中的值进行求和 并使用以下命令创建与此求和相对应的新列dplyr 列中的数据条目是二进制的 0 1 我正在考虑按行进行模拟summarise each or mutate each的函数dplyr 以下是数据框的
  • 由annotation_custom使用geom_bar图创建的移动表

    我尝试寻找答案 但找不到任何东西 我有一个绘图 想在绘图本身中添加一个表格 我可以做到 但桌子最终位于中间 如果x轴是离散的 是否可以重新定位由annotation custom创建的表 如果是这样 怎么办 谢谢你 例如 我想重新定位这张表
  • 继承自std::exception,std::exception的定义存在歧义

    所以我有点困惑 我一直在四处寻找 试图为我自己的类型确定从 std exception 继承的适当方法 现在根据 cplusplus com 我知道这不一定是标准 这就是我问的原因 std exception 是一个没有成员的基类 然而 在
  • 带有 UI 脚本的 Applescript 文件对话框

    我正在尝试在应用程序的不可编写脚本的区域中打开文件 我通过使用 UI 脚本来选择正确的菜单项 但这会打开一个标准文件对话框 如何使用 Applescript 设置文件对话框的目标位置 啊 好吧 这应该会让你走上正确的道路 tell appl
  • 在bash shell脚本中重新加载.profile(在unix中)?

    我是 bash shell 脚本新手 遇到了一个挑战 我知道我可以通过执行以下操作来重新加载我的 profile 文件 profile 但我试图在我正在编写的 bash 脚本中执行相同的操作 但它不起作用 有任何想法吗 我还可以提供其他信息
  • 通过Android的AccountManager获取Microsoft Exchange身份验证令牌

    我正在开发一个 Android 3 0 程序 它可以连接到 SSL 的 php web 服务 以 JSON 格式输出数据 我可以修改服务器 连接到此服务的平板电脑有一个企业 Microsoft ActiveSync exchange 201
  • 如何在 Mule 中添加一次全局异常处理程序/记录器

    我们想要向 mule 添加几行 XML 配置 并使用一个异常处理程序来记录到 SLF4J 而不是现在记录的位置 stdout 我们如何添加这个 我们不想将此处理程序添加到每个流 50 多个流 加上人们添加流时 他们可能会忘记添加我们的异常处
  • Mac 上的等效“sizeWithFont:”方法是什么?

    我熟悉sizeWithFont 对于iPhone 现在我正在尝试为 Mac 构建一个应用程序并需要类似的东西 但我不知道该怎么做 这就是我需要它的原因 我有一个显示一些文本的面板 我想调整它的大小 使其适合内容 aNSTextView 你会
  • 在使用反向代理提供服务的单独 Docker 容器中的 Flask 应用程序之间共享会话数据

    我有一个在本地主机上运行的 Docker 应用程序 有多个 Flask 应用程序 每个应用程序都有自己的容器 一个位于根域 localhost 其他位于子域 app localhost 我使用 traefik 反向代理来为容器提供服务 无需
  • Django 自定义身份验证后端不起作用

    我希望我的 Django 项目使用电子邮件而不是用户名对用户进行身份验证 我跟着这个建议 https stackoverflow com questions 37332190 django login with email 但它不起作用 这
  • 用 Moose 包装标准 Perl 模块是否“可以”?

    许多标准模块都直接使用 Perl 问题是这些人没有使用 Moosey 的东西 所以我发现自己用 Moose 包装它们 或者为了方便在更大的库中重新发明一些简单的函数 我想知道使用 Moose 的开发人员如何合并其他非 Moose 库是否有任
  • 从 str:tokenize() 循环多个序列

    我有来自某些硬件的类似传入 XML
  • Angular 4 与材料 2 的反应形式,禁用自动完成

    我正在使用 Angular cli Angular 4 和 Angular Material 2 我需要禁用 chrome 自动完成功能 但我无法这样做 我已经搜索并发现我需要在表单和输入中添加 autocomplete off 或 aut
  • 使用 SPARQL 中的“GRAPH”关键字获取远程图

    我希望使用 SPARQL 来完成相对基本的任务 给定一个 FOAF 图 我想解析我在其中找到的元素 获取它们的标签 如果存在 然后将它们用作新图查找有关这些人的信息 例如 您可以想象一个简单的用例 我想运行 SPARQL 查询来列出我所有最
  • 如何在 PHP 中使用 call_user_func_array 调用构造函数

    如何使用 call user func array 调用类的构造函数 这是不可能的 obj new class call user func array array obj construct args 因为如果构造函数有参数 new将失败
  • 检测声音在THREE.PositionalAudio 中结束?

    我想检测声音何时结束 但我发现所有示例都不起作用 Create sound var sound1 new THREE PositionalAudio listener sound1 load sounds Example ogg sound
  • 如何在 OpenLDAP 2.4 中使用 olcAccess 向用户添加权限

    我的公司运行着一台 OpenLdap Server 2 4 我需要允许人们在我们的 Web 应用程序之一中更改他们的图片 该功能已经存在 LDAP 中的人们没有任何权利编写自己的属性 特别是这里 jpeg照片 需要属性 我在文档中找到了这个