设为首页 收藏本站
查看: 930|回复: 1

[经验分享] openldap ACL设置

[复制链接]

尚未签到

发表于 2017-11-23 14:10:26 | 显示全部楼层 |阅读模式
1、语法语法
access to what:
by who access control

其中,access to指示启用访问控制,上句大致可以理解为:
access to <对什么目标进行控制>[by <作用于哪些访问者> <授予什么样的访问权限><采取什么样的匹配控制动作>]+

2、控制目标 what
    这一域主要是实现对ACL应用对象的指定,对象可以是记录和属性。选择ACL目标记录的方法一般有两种:DN和filter,语法为:what ::= * | [dn[.basic-style]=regex | dn.scope-style=DN] [filter=ldapfilter] [attrs=<attrlist>]

2.1 指定所有的记录如下:
    access to *

2.2 通过DN指定语法如下:
    1)、access to dn.(regex|exact)=regex
    第一种方法是使用正则表达式(dn.regex)或精确匹配(dn.style)的方式来匹配符合条件的记录(这个好像不像想象的那么简单,实现起来颇为费脑筋),例如:
    access to dn="^.*,uid=([^,]+),ou=users,(.*)$"

    2)、access to dn.(base|one|subtree|children)=DN("ou=People,dc=koudai,dc=com")
    第二种方法通过“区域”选择的方法进行目标记录的选取,对以指定的DN开始的目录树区域进行目标记录匹配。匹配区域的方式共有四种:
    base 只匹配DN本身一条记录
    one 匹配以给定DN为父目录的所有记录
    subtree 匹配以给定DN为根目录的所有子树内的记录
    children 匹配给定DN下的所有记录,但应该不包括以DN直接命名的那条记录(参见例子的解释)

2.3 通过filter指定过滤规则进行记录过虑,语法如下:
    access to filter=ldap filter
    其中filter指定的为search的过滤规则,这类同于linux系统中grep的匹配方式。如:    access to filter=(objectClass=sambaSamAccount)
    也可以结合使用DN和filter进行记录的匹配,例如:
    access to dn.subtree=”ou=users,dc=mydomain,dc=org” filter=(objectClass=posixAccount)

2.4 通过attrs选取匹配记录语法:
    access to attrs=uid,uidNumber,gidNumber
    也可以结合使用DN和attrs进行记录的匹配,例如:

    access to dn.subtree="ou=users,dc=mydomain,dc=org" attrs=uid

3、被用来授权的访问者的指定who
    指定被授权的用户范围的方法大致有以下几种:
   
    * 所有的访问者,包括匿名的用户
    anonymous 非认证的匿名用户
    users 认证的用户
    self 目标记录的用户自身
    dn[.<basic-style>]=<regex> 在指定目录内匹配正则表达式的用户
    dn.<scope-style>=<DN> 指定DN内的用户

4、被授予的权限access
    当选取好ACL作用的目标记录并选取好用户范围后,就该给这些用户授予他们应该得到的权限了。大致的权限(由低到高)有以下几类:
   
    none 无权限,即拒绝访问
    auth 访问bind(认证)设置的权限;前提是需要用户提交一个DN形式的用户名并能通过认证
    compare 比较属性的权限;(例如:对照查看某用户的telephoneNumber值是不是158 8888 8888),但并不具有搜索的权限
    search 利用过虑条件进行搜索的权限,但这并不一定具有可读取搜索结果的权限
    read 读取搜索结果的权限
    write 更改记录属性值的权限

5、采取什么样的匹配控制动作control
    在进行记录的匹配时,如果有多条规则存在,那么在第一次匹配产生后是否还进行后续的匹配或采取其它的动作将取决于此项的设置;控制方式共有以下三种:

    stop 这个是默认值,这表示在一次匹配产生后将不再进行下一个匹配,所有后续的匹配将会停止。
    continue 无论匹配是否已经发生,继续进行直到所有的规则全部进行完匹配检查
    break 一个匹配发生后,跳出当前的子句进行后一个子句的检查



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-409895-1-1.html 上篇帖子: linux的sed工具使用介绍 下篇帖子: Linux 变量简解
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表