openldap slapd.conf参数
已安装系统的 /etc/openldap/slapd.conf 中包含 LDAP 服务器的完整配置文件。在此简述了其中的各个项并说明了必要的调整。以符号 (#) 为前缀的项处于非活动状态。必须取消这个注释字符才能激活这些项。
slapd.conf 中的全局指令
1.用于加载schema模式的 Include 指令
include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/rfc2307bis.schema
include /etc/openldap/schema/yast.schema
这是 slapd.conf 中的第一个指令,用于指定组织 LDAP 目录所依据的模式。core.schema 是必需项。所需的其余模式会追加到此指令中。在包含的 OpenLDAP 文档中查找信息。
2.pidfile 和 argsfile
pidfile /var/run/slapd/slapd.pid
argsfile /var/run/slapd/slapd.args
这两个文件包含启动 slapd 进程所用的 PID(进程 ID)和一些参数。
3.访问控制
# Sample Access Control
# Allow read access of root DSE
# Allow self write access
# Allow authenticated users read access
# Allow anonymous users to authenticate
# access to dn="" by * read
access to * by self write
by users read
by anonymous auth
#
# if no access controls are present, the default is:
# Allow read by all
#
# rootdn can always write!
此选项涉及如何管理服务器上的 LDAP 目录的访问权限。只要在数据库特定部分没有声明任何自定义访问规则,slapd.conf 的全局部分中的设置将始终有效。这些自定义声明会重写全局声明。如本例所示,所有用户都可以读取目录,但只有管理员 (rootdn) 才能写入此目录。LDAP 中的访问控制管理是一个非常复杂的过程。以下提示会有所帮助:
每条访问规则都具有如下结构:
access to <what> by <who> <access>
what是一个占位符,表示授权访问的对象或属性。可以使用单独的规则来明确保护各个目录分支。还可以使用正则表达式通过一条规则处理目录树的各个区域。slapd 按照各条规则列在配置文件中的先后顺序依次评估它们。较通用的规则应列在较特定的规则之后 - 在评估 slapd 认为有效的第一条规则之后,随后的所有项都将被忽略。who确定应该授权谁来访问what确定的区域。可以使用正则表达式。slapd 同样会在评估第一条有效规则之后中止对随后的who的评估,所以应将较具体的规则列在较抽象的规则之前。表 用户组及其访问授权
标记
范围
*所有用户,无一例外
anonymous未身份验证“匿名”用户
users已身份验证用户
self与目标对象连接的用户
dn.regex=<regex>与正则表达式匹配的所有用户
access指定访问类型。请使用 上表所列的选项。表 访问类型
标记
访问范围
none无访问权
auth用于联系服务器
compare授予要进行比较访问的对象
search用于应用搜索过滤器
read读权限
write写权限
slapd 会将客户机请求的访问权限与
slapd.conf中授予的权限进行对比。如果规则允许的权限等于或高于请求的权限,则可以授予客户机权限。如果客户机请求的权限高于规则中声明的权限,便会拒绝授予权限。
如下一个简单示例,使用正则表达式可以随意指定这样的简单访问控制。
access to dn.regex="ou=([^,]+),dc=example,dc=com"
by dn.regex="cn=Administrator,ou=$1,dc=example,dc=com" write
by user read
by * none
此规则声明只有各个 ou 项的管理员才有权写入他/她所管理的项。其他所有通过身份验证的用户只有读权限,其余人没有任何权限。
如果没有 access to 规则或匹配的 by 指令,则拒绝访问。只有经过显式声明才能授予访问权限。如果根本没有声明任何规则,默认规则是管理员具有写权限,其他所有用户都具有读权限。
除了可以使用中央服务器配置文件 (slapd.conf) 管理访问权限之外,还可以使用访问控制信息 (ACI)。ACI 允许储存 LDAP 树中各个对象的访问信息。
slapd.conf 中的数据库特定指令
特定于数据库的指令
database bdb
suffix "dc=example,dc=com"
checkpoint 1024 5
cachesize 10000
rootdn "cn=Administrator,dc=example,dc=com"
# Cleartext passwords, especially for the rootdn, should
# be avoided. See slappasswd(8) and slapd.conf(5) for details.
# Use of strong authentication encouraged.
rootpw secret
# The database directory MUST exist prior to running slapd AND
# should only be accessible by the slapd/tools. Mode 700 recommended.
directory /var/lib/ldap
# Indices to maintain
index objectClass eq
overlay ppolicy
ppolicy_default "cn=Default Password Policy,dc=example,dc=com"
ppolicy_hash_cleartext
ppolicy_use_lockout
|
|
数据库类型(本案例中为 Berkeley)是在本部分的第一行设置的(请参见例 36.6 “slapd.conf:特定于数据库的指令”)。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
最后一个指令 |
|
|
|
在此为数据库自定义的 Access 规则将取代全局 Access 规则
openldap slapd.conf参数的更多相关文章
- ubuntu 12.04下安装openldap,slapd.conf找不到的解决方法
https://help.ubuntu.com/12.04/serverguide/openldap-server.html ubuntu安装openldap经历了一系列挫折,网上找了半天资料都是一模 ...
- /etc/sysctl.conf参数解释
/etc/sysctl.conf参数解释: fs.file max = 999999 #表示进程(例如一个worker进程)可能同时打开的最大句柄数,直接限制最大并发连接数 net.ipv4.tcp_ ...
- sphinx配置文件sphinx.conf参数详细说明
sphinx配置文件sphinx.conf参数详细说明 sphinx.conf各个参数详细说明 # # Sphinx configuration file sample # # WARNING! Wh ...
- KingbaseES R6 集群repmgr.conf参数'recovery'测试案例(一)
KingbaseES R6集群repmgr.conf参数'recovery'测试案例(一) 案例说明: 在KingbaseES R6集群中,主库节点出现宕机(如重启或关机),会产生主备切换,但是当主库 ...
- Redis配置文件redis.conf参数配置详解
########################################## 常规 ########################################## daemonize n ...
- Apache的配置文件http.conf参数含义详解
Apache的配置由httpd.conf文件配置,因此下面的配置指令都是在httpd.conf文件中修改. 主站点的配置(基本配置) (1) 基本配置: ServerRoot "/mnt/s ...
- Redis学习笔记--Redis配置文件redis.conf参数配置详解
########################################## 常规 ########################################## daemonize n ...
- Redis学习笔记--Redis配置文件Sentinel.conf参数配置详解
redis-sentinel.conf配置项说明如下: 1.port 26379 sentinel监听端口,默认是26379,可以修改. 2.sentinel monitor <master-n ...
- 3-nginx.conf参数配置
–#定义Nginx运行的用户和用户组 –user www www; –#nginx进程数,建议设置为等于CPU总核心数. –worker_processes8; –#全局错误日志定义类型,[ debu ...
随机推荐
- C# 初学
突然对C#充满了兴趣,于是兴致勃勃的折腾起来. 下面是折腾的过程: IDE,我选择了vs2017,不过这货的安装选项略多,对于新手来说各种坑.无论如何,选择”.NET桌面开发”即可,其他的全部留空. ...
- Java如何打印异常的堆栈?
在Java编程中,如何打印异常的堆栈? 此示例显示如何使用异常类的printStack()方法打印异常的堆栈. package com.yiibai; public class PrintStackT ...
- Java虚拟机性能管理神器 - VisualVM(4) - JDK版本与VisualVM版本对应关系
Java虚拟机性能管理神器 - VisualVM(4) - JDK版本与VisualVM版本对应关系 JDK版本与VisualVM版本对应关系说明 JDK版本与VisualVM版本对应关系 参 ...
- 每天一个linux命令:mv命令
mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录. 1.命令格式: mv [选项] 源文件或目 ...
- php的MCRYPT_RIJNDAEL_256 和mcrypt_encrypt 用法
<?php $key = "miyao";//密钥 $string="jiami";//需要加密的字符 $d = new d(); //加密 $crypt ...
- SOCKET,TCP/IP,UDP,HTTP,FTP总结
一.TCP/UDP,SOCKET,HTTP,FTP简析 TCP/IP是个协议组(主要解决数据如何在网络中传输),可分为三个层次:网络层.传输层和应用层: 网络层:IP协议.ICMP协议.ARP协议 ...
- web.py开发
web.py需要使用python2.X,所以安装python版本2.7.9 web.py 是一个轻量级Python web框架,它简单而且功能强大 web.py安装 安装python (1)使用pip ...
- C++ 使用vector时遇到的一个问题
我在测试程序中定义一个存储三维点的结构体,并定义该结构体的vector,当我在向vector插入元素时,编译一直提示错误: 代码片段如下: C++ Code 1234567891011121314 ...
- [原]单片机/Stm32教程
1 http://www.amobbs.com/forum.php?mod=viewthread&tid=4462962 2.http://bbs.21ic.com/forum.php?mod ...
- 关于解决emoji表情的存储
近段时间处理,由于工作需求,需要使得用户插入的emoji表情能够正常显示及使用,所以做个总结,以备后用. 说明:本方法只在mysql环境中测试 1.首先程序在连接数据库时,要指定数据库字符集的设置 c ...

















