RedHat Enterprise 5.1下OpenLDAP的配置及PAMNSS的配置
服务器端 192.1.0.160
客户机端 192.1.0.221
一、在服务器端配置LDAP服务:
1.下载 openldap-2.4.11.tar.gz和db-4.7.25.tar.gz
2.安装BerkeleyDB
# tar xvf db-4.7.25.tar.gz
# cd db_4.7.25
# cd build_unix/
# ../dist/configure -prefix=/usr/local/BerkeleyDB
# make
# make install
安装完成后执行
#cp /usr/local/BerkeleyDB/lib/* /usr/lib/
可避免如下错误:
checking Berkeley DB version for BDB/HDB backends... no
configure: error: BDB/HDB: BerkeleyDB version incompatible
3.安装OpenLDAP
#cd openldap-2.4.15/
#./configure --prefix=/usr/local/openldap
#make depend
#make
#make install
4.启动LDAP服务
#./slapd
5.测试LDAP服务是否正常启动

返回
dn:
namingContexts: dc=my-domain,dc=com
则说明正常启动
6.正常关闭LDAP服务
7.日志配置
日志级别是累加的:296 = 256 日志连接/操作/结果 + 32 搜索过滤器处理 + 8 连接管理:
文件slapd.config中添加:
loglevel 296
日志信息会被记录到 syslogd LOG_LOCAL4 机制中。还需要将下面的内容添加到 /etc/syslog.conf 中:
重启syslog服务
在/var/log/slapd.log中即可查看ldap的日志信息。
二、客户机端制作账号迁移脚本
IBM的《使用 OpenLDAP 集中管理用户帐号》指出RedHat Enterprise 版本会自带
openldap-server、openldap-client和一些账号移植的脚本
但是在内网160和我昨天在虚拟机上装的RedHat上却没有找到相关文件。
今天又在虚拟机上装了一个,发现默认安装并不包括这些,需要定制安装:
在光盘安装过程中有个界面让选择默认安装还是定制安装,选择“定制安装”,下一步,勾选如下软件包:
开发--开发库
openldap-devel-2.3.27
perl-ldap
perl-mozllla-ldap
服务器——网络服务器
openldap-servers-2.3.27
基本系统——系统工具
openldap-client-2.3.27
基本系统——老的软件支持
compat-db
compat-openldap
安装完成后,就可以找到移植脚本和LDAP的一些文件了。
迁移密码和 shadow 信息
Red Hat 所提供的 openldap-servers 包包含 PADL Software Pty Ltd. 公司的 MigrationTools 工具。我们将使用这些工具将数据从 Linux 系统文件(例如 /etc/group 和 /etc/password)转换成 LDAP LDIF 格式,这是数据库信息的一种文本格式的表示。这种格式是行界定、冒号分隔的属性-值对。
有一组 Perl 脚本被安装到 /usr/share/openldap/migration/ 中执行迁移。这些 Perl 脚本的配置信息包含在 migrate_common.ph 文件的开头。对于我们的目的来说,只需要修改命名前缀的变量来使用条目的识别名就足够了,如下所示:
$DEFAULT_BASE = "dc=mydomain,dc=com"
在进行这些修改之后,请运行脚本 migrate_base.pl,它会创建根项,并为 Hosts、Networks、Group 和 People 等创建低一级的组织单元:
运行 migrate_base.pl
# ./migrate_base.pl > base.ldif |
编辑 base.ldif,删除除下面之外的所有条目:
base.ldif 条目
# cat base.ldifdn: dc=mydomain,dc=comdc: ibmobjectClass: topobjectClass: domaindn: ou=People,dc=ibm,dc=comou: PeopleobjectClass: topobjectClass: organizationalUnitdn: ou=Group,dc=ibm,dc=comou: GroupobjectClass: topobjectClass: organizationalUnit |
在 LDAP 服务器上,使用 OpenLDAP 客户机工具 ldapadd 将以下条目插入到数据库中。简单身份验证必须要使用 -x
选项指定。在 slapd.conf 中定义的 rootdn
身份验证识别名是 “cn=Manager,dc=mydomain,dc=com”。对于简单身份验证来说,必须使用密码。选项 -W
强制提示输入密码。这个密码就是在 slapd.conf 文件中指定的 rootpw
参数的值。包含这些条目的 LDIF 文件是使用 -f
选项指定的:
使用 ldapadd 插入条目
# ldapadd -x -D "cn=Manager,dc=mydomain,dc=com" -W -f base.ldif |
接下来,从 /etc/group 中迁移 ldapuser 组:
迁移 ldapuser 组
# grep ldapuser /etc/group > group.in |
最后,从 /etc/passwd 和 /etc/shadow 中迁移 ldapuser 的信息:
迁移 ldapuser 信息
# grep ldapuser /etc/passwd > passwd.in |
三、客户机端配置NSS&PAM
参考IBM《使用 OpenLDAP 集中管理用户帐号》
配置 LDAP 客户机部分
方法1 图形界面配置

方法2 修改配置文件
/etc/ldap.conf、/etc/nsswitch.conf、/etc/sysconfig/authconfig 和/etc/pam.d/system-auth
我的/etc/pam.d/system-auth的配置如下:
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth required pam_env.so
auth sufficient pam_unix.so nullok try_first_pass
auth requisite pam_succeed_if.so uid >= 500 quiet
auth sufficient pam_ldap.so use_first_pass
auth required pam_deny.so
account required pam_unix.so broken_shadow
account sufficient pam_localuser.so
account sufficient pam_succeed_if.so uid < 500 quiet
account [default=bad success=ok user_unknown=ignore] pam_ldap.so
account required pam_permit.so
password requisite pam_cracklib.so try_first_pass retry=3
password sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok
password sufficient pam_ldap.so use_authtok
password required pam_deny.so
session optional pam_keyinit.so revoke
session required pam_mkhomedir.so skel=/etc/skel/ umask=0022
session required pam_limits.so
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session required pam_unix.so
session optional pam_ldap.so
一点说明:pam_mkhomedir.so 负责用户初次登陆没有home目录时为其创建home目录。没有这项配置的话,新用户登陆可能会报/home目录找不到的错误。
转载于:https://blog.51cto.com/1123793/831302
相关文章:

pwn with glibc heap(堆利用手册)
前言 对一些有趣的堆相关的漏洞的利用做一个记录,如有差错,请见谅。 文中未做说明 均是指 glibc 2.23 相关引用已在文中进行了标注,如有遗漏,请提醒。 简单源码分析 本节只是简单跟读了一下 malloc 和 free 的源码&am…

COCO KeyPoints关键点数据集准备
COCO KeyPoints关键点数据集准备 概述 网上搜了一圈,coco关键点数据集准备的内容比较少,这里写一篇完成的标注流程到数据集准备的文章,以备后忘 标注工具 coco官方标注工具: coco–annotator https://github.com/jsbroks/coco-annotator …

Boost 1.53.0 发布,可移植的C++标准库
Boost 1.53.0 发布了,包含了 5 个新的库,修复了一些安全漏洞以及 Boost.Locale 组件的 bug 。 新增的 5 个库包括: Boost.AtomicBoost.CoroutineBoost.MultiprecisionBoost.Numeric.OdeintBoost.Lockfree完整改进记录说明请看 changelog 下载…

华为云客户端_从技术角度解读华为云手机之于普通用户的可行性
9月1日,华为云宣布,华为首创全球首个ARM芯片的“云手机”正式公测。此消息一出,普通消费市场一片赞美之声,想必大家更多的想法是终于让华为找到了一个应对当前手机困局的解决方案了。据悉,华为云鲲鹏手机早在今年3月就…

c#获取应用程序目录
string str1 Process.GetCurrentProcess().MainModule.FileName;//可获得当前执行的exe的文件名。 string str2Environment.CurrentDirectory;//获取和设置当前目录(即该进程从中启动的目录)的完全限定路径。//备注 按照定义,如果该进程在本…

【BZOJ5311/CF321E】贞鱼/Ciel and Gondolas(动态规划,凸优化,决策单调性)
【BZOJ5311/CF321E】贞鱼/Ciel and Gondolas(动态规划,凸优化,决策单调性) 题面 BZOJCF洛谷 辣鸡BZOJ卡常数!!!!!! 辣鸡BZOJ卡常数!!&…

python定时任务contrib_django+celery配置(定时任务+循环任务)
下面介绍一下djangocelery的配置做定时任务1.首先介绍一下环境和版本python2.7django 1.8.1celery 3.1.23django-celery 3.1.172.celery的安装sudo pip install celery3.1.23sudo pip install django-celery3.1.173.新建一个项目(1)django-admin startproject django_celery…

CenterNet KeyPoints 关键点训练自己的数据
概述 网上搜了一圈,关于CenterNet 训练关键点数据的资料非常少,而且讲得都很模糊,没法解决实际问题,也未说明细节和要素。在踏坑许久之后,才跑通CenterNet的关键点训练,于是记录一下踏坑历程,以…

Java学习笔记---字符类型
一、字符类型也算是整数类型的一种 字符类型在内存中占有2个字节,可以用来保存英文字母等字符。计算机处理字符类型时,是把这些字符当成不同的整数来看待,因此,严格说来,字符类型也算是整数类型的一种(小写…

我的家庭私有云计划-16
嗯,上午测试S2S的稳定性,改掉几个bug。还挺忙的。这会儿让机器跑测试去,腾出点时间,我们接着聊。 呵呵,昨天哪,已经有朋友批评我了,说我有点贪大求全,这个论坛什么的没必要自己实现&…

“cyl projection cannot cross pole” 解决方法
解决方法: 1、尝试更新NumPy以及相关模块: 在CMD里面执行 conda update –all 遇到提示选择yes/y 更新完毕后看是否可以载入。 发现并不能成功更新,于是采取了下面方法: 2、如果方法一不能解决,那么尝试卸载相关库&…

使用ubuntu(18.04) 作为软路由器连接互联网
使用ubuntu(18.04) 作为软路由器连接互联网 背景: 最近要用ubuntu机器作为中继路由,需要配置一下,但是内网外网网上找了一圈,五花八门的,照着做没有一个靠谱的,遇到的问题也没有任何说明&#…

程序员肿么了?为何总被认为是“屌丝”
没有想到会这么多人,有一点我强调一下,我的标题是被认为,而不是说真是。其实程序员相比其他行业不见得差,只是社会整体认可度不高。(或者说认知) 本文纯属闲时娱乐,请勿当真,请勿较真…

python空值填充_pandas | DataFrame基础运算以及空值填充
今天是pandas数据处理专题的第四篇文章,我们一起来聊聊DataFrame的基本运算。上一篇文章当中我们介绍了DataFrame数据结构当中一些常用的索引的使用方法,比如iloc、loc以及逻辑索引等等。今天的文章我们来看看DataFrame的一些基本运算。数据对齐我们可以…

Python学习之路基础篇--10Python基础,函数进阶
1 命名空间 对于Python 来说命名空间一共有三种 1 内置命名空间 —— Python 解释器 就是Python 解释器一启动就可以使用的名字,储存在内置命名空间中。内置的名字在启动解释器的时候被加载进内存里 2 全局命名空间 —— 我们所命名的,但不是函数中的代码…
C语言中整型浮点型在计算机中的存储
第一次写博客,遣词造句有点菜,算是一次简单梳理,慢慢学习人家的博客风格,随着学习的深入再做修改。 本次学习的是C语言在VS下的编译调试,对于初学者两说,首先说一下如何监控变量,以及监控变量在…

判断交换机性能好坏的九个因素
【文章摘要】把握千兆交换机的主要性能指标是关键,而判断交换机性能的好坏,需要从以下几方面的因素出发... 把握千兆交换机的主要性能指标是关键,而判断交换机性能的好坏,需要从以下几方面的因素出发: 转发技术 …

xgboost回归预测模型_偏最小二乘回归分析法 从预测角度对所建立的回归模型进行比较...
在实际问题中,经常遇到需要研究两组多重相关变量间的相互依赖关系,并研究用一组变量(常称为自变量或预测变量)去预测另一组变量(常称为因变量或响应变量), 除了最小二乘准则下的经典多元线性回归分析(MLR),提取自变量组主成分的主…

win7的IE缓存,临时文件,cookies和历史记录
2019独角兽企业重金招聘Python工程师标准>>> vista、win7的缓存以及临时文件、Cookies和历史记录都在以下几个地方: 缓存: %userprofile%\AppData\Local\Microsoft\Windows\Temporary Internet Files Temp: %userprofile%\AppData\Local\Temp Cookies: %…

Sql Server函数全解(四)日期和时间函数
阅读目录 1.获取系统当前日期的函数getDate();2.返回UTC日期的函数UTCDATE()3.获取天数的函数DAY(d)4.获取月份的函数MONTH(d)5.获取年份的函数YEAR(d)6.获取日期中指定部分字符串值的函数DATENAME(dp,d)7.获取日期中指定部分的整数值的函数DATEPART(dp,d)8.计算日期和时间的函…

关于python的比赛_【蓝桥杯】——python集团的比赛技巧,Python,组
【蓝桥杯】—— Python组比赛技巧蓝桥杯是大学生IT学科赛事,由工业和信息化部人才交流中心主办,所以对于大学生还说还是非常值得去参加的,2020年第十一届蓝桥杯新增了大学Python组,不分组别,第一届没有历届的真题&…

杭电 HOJ 1312 Red and Black 解题报告
搜索,bfs。依旧用队列做。边界处懒得处理,全部初始化为-1。当然,0也可以。AC代码如下: #include<iostream> #include<deque> using namespace std;struct Point {int x,y; } x,y;int main() {char str[22];int i,j,n,…

pfile和spfile的区别
pfile和spfile的区别 pfile 默认的名称为“init例程名.ora”文件路径:/app/oracle/product/10.2.0/dbs,这是一个文本文件,可以用任何文本编辑工具打开。spfile 默认的名称为“spfile例程名.ora”文件路径:/app/oracle/product/10…

json操作2
import jsonfopen(a.txt,w,encodingutf-8)goods{ 宝马:111111, 奔驰:222222}resjson.dumps(goods,ensure_asciiFalse)#把字典转成jsonf.write(res) json.dump(goods,f,ensure_asciiFalse)#把字典转成json,json会帮你write一次 ----颜色不一样的代码一致运行结果ÿ…
缓冲区和数组的输入输出问题
最近编写程序的时候一直被数据的输入输出所困扰,由此写篇博文总结一下最近遇到的问题和解决方法,错误之处望指正。 1.数组使用的一些语法注意事项 (1)数组的定义 一维数组:类型名 数组名 [常量表达式] 常量表达式中可…

目前python主要应用领域零售_python3读取HDA零售企业数据(一)
#-*- coding:utf-8 -*-# 下载河南FDA各药品经营企业目录import urllib.requestimport urllib.parseimport reimport osimport http.cookiejarheader {Connection: Keep-Alive,Accept: application/x-ms-application, image/jpeg, application/xamlxml, image/gif, image/pjpeg…

调试webservice遇到“测试窗体只能用于使用基元类型作为参数的方法”的解决办法...
之前一直写webservice 没有遇见这种情况,因为一般返回的参数整形 字符串 之类的 都是基本类型,最多也就是把xml序列化为一个字符串返回,这次遇到了返回一个引用类型的,不能直接调试了。所以,现在只能写一个程序把webse…

EJB3.1 JBoss7.1 Eclipse3.7
为什么80%的码农都做不了架构师?>>> EJB3.1 JBoss7.1 Eclipse3.7 ------Hello World 一、环境配置: JDK:正常配置 Eclipse:正常下载,解压(V3.7) JBoss:正常下载…

NOIP2012-摆花
放题目不解释~~~~ 【试题描述】 小明的花店新开张,为了吸引顾客,他想在花店的门口摆上一排花,共m盆。通过调查顾客的喜好,小明列出了顾客最喜欢的n种花,从1到n标号。为了在门口展出更多种花,规定第i种花不能…

github提交代码却没有显示绿格子
在github上提交代码之后,进入github上面查看自己的提交,可以看看刚刚的提交内容,但是却一直没有显示绿格子,一个原因是本地git的配置邮箱和github上面的邮箱不一致。 解决办法是,打开本地的git bash,然后直…