当前位置: 首页 > news >正文

商丘微信推广平台seo运营是什么意思

商丘微信推广平台,seo运营是什么意思,网站建设前期准备方案,ecs wordpress ubuntumemberOf 反向属性丢失 最近的主旋律是降本增效,每隔一段时间就送走一批同事和服务器,也是没谁了。 历史包袱,有两套 openldap 服务,需要做腾退。 简单说就是把一台中的数据导出,然后导入到另一台中去。 导出导入本…

在这里插入图片描述

memberOf 反向属性丢失

最近的主旋律是降本增效,每隔一段时间就送走一批同事和服务器,也是没谁了。

历史包袱,有两套 openldap 服务,需要做腾退。

简单说就是把一台中的数据导出,然后导入到另一台中去。

导出导入本身很简单没什么可说的。

但是导入之后同事反馈查不到用户所在的组了。

这怎么可能的呢,我测过是好用的呀?

一番探究,同事用了 openldap memberof反向属性的能力。

memberOf 是一个 自动反向关联属性,当你把用户加入某个组(如 groupOfNames.member),OpenLDAP 自动在用户条目上加上 memberOf —— 但前提是:

  • 你启用了 memberof overlay
  • 并在 启用 overlay 后 添加的 member 才会触发,memberOf 属性不会自动补历史数据,你需要更新成员才会触发。这是关键。

启用 memberof overlay

# memberof_overlay.ldif
dn: olcOverlay=memberof,olcDatabase={6}mdb,cn=config
objectClass: olcOverlayConfig
objectClass: olcMemberOfConfig
olcOverlay: memberof
olcMemberOfRefInt: TRUE
olcMemberOfDangling: ignore
olcMemberOfGroupOC: groupOfNames
olcMemberOfMemberAD: member
olcMemberOfMemberOfAD: memberOf
ldapadd -Y EXTERNAL -H ldapi:/// -f memberof_overlay.ldif
systemctl restart slapd
systemctl status slapd

批量删除并重新添加组内成员

import ldapTEMP_MEMBER_DN = b"cn=temp,ou=people,dc=x,dc=com"def list_group_dns():ldap_uri = "ldap://ldap.x.com"bind_dn = "cn=ladm,dc=x,dc=com"bind_pw = "your_bind_pw"  # 替换成实际密码conn = ldap.initialize(ldap_uri)conn.simple_bind_s(bind_dn, bind_pw)# 搜索所有 groupOfNames 组group_results = conn.search_s("dc=x,dc=com",ldap.SCOPE_SUBTREE,"(objectClass=groupOfNames)",["member"])for dn, attrs in group_results:print(f"- {dn}")members = attrs.get("member", [])for member_dn in members:# 删除(如果不是唯一成员)if len(members) > 1:print(f"{dn} 成员数: {len(members)}")try:conn.modify_s(dn, [(ldap.MOD_DELETE, "member", member_dn)])# print(f"[OK] 删除成员: {member_dn.decode()}")try:print(f"重新添加成员: {member_dn.decode()} -> {dn}")# 添加conn.modify_s(dn, [(ldap.MOD_ADD, "member", member_dn)])except ldap.TYPE_OR_VALUE_EXISTS:print(f"[INFO] 已存在成员: {member_dn.decode()},跳过添加")except ldap.LDAPError as e:print(f"[ERROR] 添加成员失败: group={dn}, member={member_dn}, 错误: {e}")except ldap.NO_SUCH_ATTRIBUTE:print(f"[INFO] 成员不存在: {member_dn.decode()},跳过删除")except ldap.LDAPError as e:print(f"[ERROR] 删除成员失败: group={dn}, member={member_dn}, 错误: {e}")else:print(f"{dn} 仅剩一个成员,插入临时成员")conn.modify_s(dn, [(ldap.MOD_ADD, "member", TEMP_MEMBER_DN)])try:conn.modify_s(dn, [(ldap.MOD_DELETE, "member", member_dn)])try:print(f"重新添加成员: {member_dn.decode()} -> {dn}")# 添加conn.modify_s(dn, [(ldap.MOD_ADD, "member", member_dn)])except ldap.TYPE_OR_VALUE_EXISTS:print(f"[INFO] 已存在成员: {member_dn.decode()},跳过添加")except ldap.LDAPError as e:print(f"[ERROR] 添加成员失败: group={dn}, member={member_dn}, 错误: {e}")except ldap.NO_SUCH_ATTRIBUTE:print(f"[INFO] 成员不存在: {member_dn.decode()},跳过删除")except ldap.LDAPError as e:print(f"[ERROR] 删除成员失败: group={dn}, member={member_dn}, 错误: {e}")print(f"{dn} 删除临时成员")conn.modify_s(dn, [(ldap.MOD_DELETE, "member", TEMP_MEMBER_DN)])conn.unbind_s()def main():list_group_dns()if __name__ == "__main__":main()

测试验证

ldapsearch -x -H ldap://ldap.x.com -D "cn=adm,dc=x,dc=com" -W \-b "cn=alice,ou=people,dc=x,dc=com" "(objectClass=person)"dn: cn=alice,ou=people,dc=x,dc=com
memberOf: cn=enabled,ou=abc,ou=group,dc=x,dc=com
http://www.cadmedia.cn/news/8277.html

相关文章:

  • 网站建设劳务协议域名权重查询工具
  • 个人网站建设与实现毕业设计足球比赛直播
  • 网站建设网页制作软件有哪些注册商标查询官网入口
  • 一键生成视频app软件长沙市seo百度关键词
  • 潮州外贸网站建设识万物扫一扫
  • 企业网站建设公司郑州网络营销推广的5种方法
  • 亚马逊企业网站建设百度重庆营销中心
  • 梨树县住房和城乡建设局网站百度公司电话
  • 全国最火的加盟项目百度seo霸屏软件
  • 凯里市网站建设长沙网站提升排名
  • 如何查看域名以前是做什么网站的站长工具
  • 石台做网站seo工资待遇怎么样
  • 电子商务网站建设学什么软件重庆seo排名扣费
  • 手机网站建设教材站长百度
  • 绍兴公司注册网站推广优化排名教程
  • 郑州购物网站建设百度下载免费官方安装
  • 广告商网站建设网站收录怎么弄
  • 可以写代码的网站不屏蔽的国外搜索引擎
  • 工程网络图信息流优化师证书
  • 广东品牌网站建设百度在线下载
  • 鹤壁市建设局网站baidu百度
  • 网站建设电脑和手机有区别吗长尾关键词排名推广
  • 做网站外链福建seo关键词优化外包
  • 杭州哪里找网站建设的兼职百度免费收录提交入口
  • 日照网站建设哪一家好定制企业网站建设制作
  • 在线做任务的网站品牌营销策划有限公司
  • 谷歌网站开发客户网络推广业务
  • 浦东新区建设交通委网站好口碑关键词优化
  • html动态图片代码系统优化
  • 公司官网首页seo网站关键词排名快速