ldap数据库--ODSEE--ACI
查看跟DN下的aci
ldapsearch -h hostname -p port -D "cn=Directory Manager" -w - -b "BASE_DN" "(objectclass=*)" aci
Aci语法:
aci: [list of (target)](version 3.0; acl "name";[list of "permission bindRules;"])
参数说明:
target:可以使条目,属性,多个条目或者属性,可以通过filter进行匹配的条目和属性。该属性可选,如果没有指定,则针对子树(subtree)下所有条目。
name:用于却分每个aci唯一标识,但是对名字没有限制。尽量保持aci名字的唯一性,不要重复。当不能确定aci是否生效可以通过Get Effective Rights查看,这时aci的名字就起作用了。
permission:aci对应的可操作权限
bindRules:指定那些条目具有使用该aci。
Aci targets语法
(keyword = " expression")
Keyword :可以使如下:target ,tartetattr,targetfilter,targettrfilters,targetscope
expression:可以使用“=”和“!=” 但是当keyword是targettrfilters和targetscope时不能使用"!="
例如:
(target = "ldap:///uid=bjensen,ou=People,dc=example,dc=com") :目标条目为uid=bjensen的条目的所有属性,
使用如下filter均可匹配该条目
(target= "ldap:///uid=bj*,ou=people,dc=example,dc=com")
(target= "ldap:///uid=*,ou=people,dc=example,dc=com")
(target= "ldap:///*,ou=people,dc=example,dc=com")
(target= "ldap:///uid=bjensen,*,dc=com")
(target= "ldap:///uid=bjensen*")
Aci targetattr语法
(targetattr = "attribute") or (targetattr != "attribute")
如果targetattr没有出现则表示不匹配任何属性;如果要匹配所有属性需写:targetattr="*"
匹配多个属性书写规则如下:
(targetattr = "attribute1 || attribute2|| ... attributeN")
Aci targetfilter语法
根据filter来搜索所有匹配的条目:(targetfilter = "(standard LDAP search filter)")
例如:
(targetfilter = "(|(status=contractor)(fulltime<=79))") :status=contractor并且filltime小于等于79的条目
Aci targattrfilters语法
指定哪些属性的值可以被添加,删除,修改:(targattrfilters="add=attr1:F1 && attr2:F2... && attrn:Fn, del=attr1:F1 && attr2:F2 ... && attrn:Fn")
参数说明:
add
添加属性值
del
删除属性值
attrn
替换或更新属性值
Fn
仅对关联的属性生效
Aci targetscope语法
(targetscope="base")
base
aci仅作用于目标资源
onelevel
aci仅作用于目标资源和他的第一个子树
subtree
aci作用于目标资源和所有子树
如果targetscope关键字没有指定,默认值为subtree。
Aci rights
read ,write,add,delete,search,compare,selfwrite,proxy,import,export,All
Aci 示例
1)允许匿名访问除userPassword之外的所有条目的属性:
aci: (targetattr !="userPassword")(version 3.0; acl "Anonymous example"; allow (read, search, compare)userdn= "ldap:///anyone" ;)
2) 允许自己修改自己的部分属性:
aci: (targetattr="homePhone || homePostalAddress")(version 3.0; acl "Write Example.com"; allow (write) userdn="ldap:///self" ;)
3)允许cn=HRGroup的组访问所有ou=People,dc=example,dc=cr下的所有条目(假设aci在ou=People,dc=example,dc=cr下):
aci: (targetattr="*") (version 3.0; acl "HR"; allow (all) groupdn= "ldap:///cn=HRgroup,ou=Groups,dc=example,dc=com";)
4)允许ou=People下任何用户在ou=Social Committee,dc=example,dc=com下添加组(可以自己的需求更改objectClass对应的类,达到添加动态组和静态组):
aci: (targetattr="*") (targattrfilters="add=objectClass:(|(objectClass=groupOfNames)(objectClass=top))")(version 3.0; acl "Create Group"; allow (read,search,add) userdn= "ldap:///uid=*,ou=People,dc=example,dc=com") and dns="*.Example.com";)
从aci的权限可以看出,词条aci并没有赋予用户修改权限,即只能添加,不能修改
5)允许组管理员修改,删除组操作ou=Social Committee,dc=example,dc=com下的组,假设该条aci在ou=Social Committee,dc=example,dc=com下:
aci: (targetattr = "*") (targattrfilters="del=objectClass:(objectClass=groupOfNames)") (version 3.0; acl "Delete Group"; allow (write,delete) userattr="owner#GROUPDN";)
6)允许用户自己修改自己的member属性,假设该aci添加在ou=Social Committee,dc=example,dc=com条目下:
aci: (targettattr="member")(version 3.0; acl "Group Members"; allow (selfwrite) (userdn= "ldap:///uid=*,ou=People,dc=example,dc=com") ;)
可以根据自己的需要做适当调整,来满足对用户权限的控制。
查看aci是否生效
当完成一个aci的定义并把aci添加到对应的作用范围后,如果不确定aci是否生效可以使用view effective rights,使用ldapsearch命令可以查看对应的作用域下的所有条目该aci是否生效,操作命令如下:
ldapsearch -J "1.3.6.1.4.1.42.2.27.9.5.2" -h host1.Example.com -p 389 -D "uid=Directory Manager" -w - -b "dc=example,dc=com" "(objectclass=*)" aclRights
参数说明:
-J:默认值
-D:使用搜索绑定的用户
-b:base DN
搜索结果类似如下:如果用户对条目没有操作权限,则不会显示出来。
dn: dc=example,dc=com
aclRights;entryLevel: add:0,delete:0,read:1,write:0,proxy:0
dn: ou=Groups, dc=example,dc=com
aclRights;entryLevel: add:0,delete:0,read:1,write:0,proxy:0
如果通中类型的aci较多,也可以使用宏匹配的方式进行。具体可以参考:docs.oracle.com/cd/E29127_01/doc.111170/e28972/ds-access-control.htm
ldap数据库--ODSEE--ACI的更多相关文章
- ldap数据库--ODSEE--suffix
ldap数据库的suffix是建立ldap之间复制协议的基础,suffix的创建也可以通过管理界面进行,也可以通过命令行进行.不同点是通过管理界面创建的suffix会自动创建一条对应该suffix的匿 ...
- ldap数据库--ODSEE--安装
在安装之前最好查看一下服务器硬件是否满足要求,是否需要更改一些系统配置来达到使用ldap数据库的最有性能.实际使用的ldap数据库是oracle的产品,DS70即ODSEE. 安装环境:solaris ...
- ldap数据库--ODSEE--复制协议
简单介绍一下ODSEE的复制拓扑的建立,复制协议可以通过管理界面进行创建,也可以通过命令行创建.在此之前需要了解一些复制协议的相关概念,这里针对OESEE. 1,复制角色 master(提供者,也可以 ...
- ldap数据库--ldapsearch,ldapmodify
简单介绍一下ldapsearch命令,在ldap搜索条目时很有用,只要适当调整filter就可以. 命令如下: ldapsearch -h hostname -p port -b baseDN -D ...
- ldap数据库--ODSEE--schema
ldap服务器包含上百个对象类型(object class)和属性,这些对象类和属性都可以满足大部分需求,如果你想定义自己的schema,你只能继承扩展现有的schema进行操作. tip: 增加的新 ...
- ldap数据库--ODSEE--卸载
针对ldap实例的卸载,即删除,可以通过管理界面进行操作也可以通过命令行进行操作.卸载顺序为ldap实例--agent--ads.这里主要介绍命令操作步骤 1,ldap实例卸载 从ads注销,即不在需 ...
- LDAP分布式数据库的介绍和安装使用
目录服务 目录是一个为查询.浏览和搜索而优化的专业分布式数据库,它呈树状结构组织数据,就好象Linux/Unix系统中的文件目录一样.目录数据库和关系数据库不同,它有优异的读性能,但写性能差,并且没 ...
- LDAP介绍
摘自: http://www.blogjava.net/allen-zhe/archive/2007/03/19/104740.html LDAP介绍 原文:http://ldapman.org/ar ...
- LDAP协议介绍
LDAP协议基础概念 1. 从用途上阐述LDAP,它是一个存储静态相关信息的服务,适合"一次记录多次读取".经常使用LDAP服务存储的信息: 公司的物理设备信息(如打印机,它的I ...
随机推荐
- 【笔记】php常用函数
phpusleep() 函数延迟代码执行若干微秒.unpack() 函数从二进制字符串对数据进行解包.uniqid() 函数基于以微秒计的当前时间,生成一个唯一的 ID.time_sleep_unti ...
- AIM Tech Round 4 (Div. 2)ABCD
A. Diversity time limit per test 1 second memory limit per test 256 megabytes input standard input o ...
- 【原】Spark 编程指南
尊重原创,注重版权,转贴请注明原文地址:http://www.cnblogs.com/vincent-hv/p/3322966.html 1.配置程序使用资源: System.setPropert ...
- Struts2和SpringMVC的区别
简单谈一下Struts2和SpringMVC的区别,文章有所引用知乎所对应的答案数据,和所查看的其余资料数据,进行一个简单的汇总,后续查看时使用: 知乎解释链接为:https://www.zhihu. ...
- ZOJ1654 Place the Robots
Zoj1654 标准解法:二分匈牙利. 写法各异嘛,看不懂或者懒得看也正常,如果想了解我思路的可以和我讨论的. 在练习sap,所以还是写了一遍: #include<cstdio> #inc ...
- Spring ——简介及环境搭建跑通Hello
Spring Spring是一个开放源代码的设计层面框架,他解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用.是为了解决企业应用程序开发复杂性而创建的.框架的主要优 ...
- px转vw和vh的工具(对前端同学有用)
CSS3中有两个新尺寸单位vw和vh, 这两个单位非常适合于开发移动端自适应页面. 假如说有一个设计师做了一张1136x750px的页面,这长页面是针对iPhone6的屏幕设计的. 前端开发工程师将这 ...
- DevOps之服务器
唠叨话 关于德语噢屁事的知识点,仅提供专业性的精华汇总,具体知识点细节,参考教程网址,如需帮助,请留言. <服务器(Server)> DevOps之服务器划分为三部分:系统.虚拟化.器件. ...
- cocos2dx - 创建地图及玩家(伪)
接上一节内容:cocos2dx - 环境配置,项目创建 本节主要描述cocos中精灵的创建及点击事件的使用 打开创建好的test项目,看到下图的目录结构,真正的游戏逻辑路径在src下. AppDele ...
- LVS+Keepalived高可用负载均衡集群架构实验-01
一.为什么要使用负载均衡技术? 1.系统高可用性 2. 系统可扩展性 3. 负载均衡能力 LVS+keepalived能很好的实现以上的要求,LVS提供负载均衡,keepalived提供健康检查, ...