亲测可用
https://blog.csdn.net/ztq157677114/article/details/50538176
学习搭建LDAP用户认证管理服务器。前面章节介绍安装,后面介绍ldap使用命令行添加用户。
环境准备
两台虚拟机
node01 IP:192.168.242.100 server端
node02 IP:192.168.242.13 client端
均关闭iptables和selinux
步骤
分为server端操作和client端操作
server端
yum install openldap-servers -y
拷贝配置文件
cd /usr/share/openldap-servers/
cp slapd.conf.obsolete /etc/openldap/slapd.conf
创建LDAP管理员密码
slappasswd
输入两次后,保存密文
New password:
Re-enter new password:
{SSHA}VAJlsyl8s1wwIt9u+21axefNBxt6QjQf
编辑slapd配置文件
vim /etc/openldap/slapd.conf
修改其中cn,dc相关内容,及rootpw密文密码
database monitor
access to *
by dn.exact="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" read
by dn.exact="cn=Manager,dc=my-domain,dc=com" read
by * none
database bdb
suffix "dc=my-domain,dc=com"
checkpoint 1024 15
rootdn "cn=Manager,dc=my-domain,dc=com"
rootpw {SSHA}u9NKZTNKJxVHjRh7yluTDpiy0N7Hno4R
拷贝拷贝DB_CONFIG文件
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
删除默认配置 (否则添加ldap用户时会报错)
rm /etc/openldap/slapd.d/* -rf
设置目录权限
chown -R ldap:ldap /etc/openldap/
chown -R ldap:ldap /var/lib/ldap
测试并生成配置文件
# slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d
config file testing succeeded
出现succeed继续
启动服务并设置开机启动
chkconfig slapd on
/etc/init.d/slapd start
创建账号以备client登陆测试
useradd ldapuser1
echo '111111' | passwd --stdin ldapuser1
至此,这些用户仅仅是系统上存在的用户(存储在/etc/passwd和/etc/shadow上),并没有在LDAP数据库里,所以要把这些用户导入到LDAP里面去。但LDAP只能识别特定格式的文件 即后缀为ldif的文件(也是文本文件),所以不能直接使用/etc/passwd和/etc/shadow。 需要migrationtools这个工具把这两个文件转变成LDAP能识别的文件。
安装migrationtools工具
yum install migrationtools -y
配置migrationtools
cd /usr/share/migrationtools/
cd /usr/share/migrationtools/
修改
搜索”dc=”,值改为与slapd.conf一致内容
# Default DNS domain
$DEFAULT_MAIL_DOMAIN = "my-domain.com";
# Default base
$DEFAULT_BASE = "dc=my-domain,dc=com";
下面利用pl脚本将/etc/passwd 和/etc/shadow生成LDAP能读懂的文件格式,保存在/tmp/下
./migrate_base.pl > /tmp/base.ldif
./migrate_passwd.pl /etc/passwd > /tmp/passwd.ldif
./migrate_group.pl /etc/group > /tmp/group.ldif
导入LDAP
需要输入管理员密码
ldapadd -x -D "cn=Manager,dc=my-domain,dc=com" -W -f /tmp/base.ldif
ldapadd -x -D "cn=Manager,dc=my-domain,dc=com" -W -f /tmp/group.ldif
ldapadd -x -D "cn=Manager,dc=my-domain,dc=com" -W -f /tmp/passwd.ldif
重启服务
/etc/init.d/slapd restart
没有问题后,配置client端使用LDAP认证并挂载家目录
client端
client端使用system-config-authentication工具配置
system-config-authentication
之后配置简单不做叙述
注:如果提示需要安装软件包,安装即可
nscd-2.12-1.132.el6.x86_64
nss-pam-ldapd-0.7.5-18.2.el6_4.x86_64
LDAP命令行添加/删除用户
安装ldap工具migrationtools,并且配置migrationtools
vim /usr/share/migrationtools/migrate_common.ph
# Default DNS domain
$DEFAULT_MAIL_DOMAIN = "clustertech.com";
# Default base
$DEFAULT_BASE = "dc=clustertech,dc=com";
如安装ldap部分所述,使之符合目前的环境,主要修改部分,cn&dc
以下内容,其中your_passwd 为ldap管理员密码,his_passwd为新建用户初始密码。具体过程如下:
1. 新建本地用户
##注意,如果需要指定ldap中test的属组,此处也要指定
useradd test
转换UID至LDAP
cat /etc/passwd | grep test >/tmp/passwd.in
/usr/share/migrationtools/migrate_passwd.pl /tmp/passwd.in > /tmp/passwd.ldif
/usr/bin/ldapadd -x -D "cn=Manager,dc=clustertech,dc=com" -w your_passwd -f /tmp/passwd.ldif
转换GID至LDAP
cat /etc/group | grep test >/tmp/group.in
/usr/share/migrationtools/migrate_group.pl /tmp/group.in > /tmp/group.ldif
/usr/bin/ldapadd -x -D "cn=Manager,dc=clustertech,dc=com" -w your_passwd -f /tmp/group.ldif
删除本地用户,使用LDAP用户认证
userdel test
##如果ldap中test的家目录不变,可以不删除目录
#rm -rf /home/test
##查看新建用户结果
ldapsearch -x "uid=test"
设置用户初始密码
/usr/bin/ldappasswd -x -D "cn=Manager,dc=clustertech,dc=com" -w your_passwd "uid=test,ou=People,dc=clustertech,dc=com" -s his_passwd
其中’-s’ 指定密码 ‘-S’ 使用交互模式指定密码;同 ‘-w’
设置用户家目录
ldapmodify -x -D "cn=admin,dc=cas,dc=cn" -W
按照提示输入ldap管理员密码之后
dn: uid=test,ou=People,dc=cas,dc=cn
changetype: modify
replace: homeDirectory
##导入UID时,默认家目录就是/home/test,此步骤按需操作。
homeDirectory: /home/test
如果没有/home/test目录理应是系统自动建立,如果没有建立,手动建立并执行:
mkdir /home/test
cp /etc/skel/.bash* /home/test
chown test.test /home/test -R
chmod 700 /home/test
##测试
[root@ldap ~]# su - test
[test@ldap ~]$ pwd
/home/test
##正常登陆,并且登陆只/home/test目录正常
##删除用户
ldapdelete -x -D "cn=Manager,dc=clustertech,dc=com" -w your_passwd "uid=test,ou=People,dc=clustertech,dc=com"
版权声明:本文为博主原创文章,转载请注明 https://blog.csdn.net/ztq157677114/article/details/50538176
http://www.linuxfly.org/post/671/
http://www.mamicode.com/info-detail-1859794.html
ldap客户端
http://www.ldapsoft.com/download.html
https://blog.csdn.net/zhxue123/article/details/7481180
修改密码
[root@web_dev tmp]# ldappasswd -x -D "cn=Manager,dc=my-domain,dc=com" -W "uid=yansiyu,ou=People,dc=my-domain,dc=com" -S
New password: 新密码
Re-enter new password:新密码
Enter LDAP Password:管理员密码
[root@localhost tmp]# ldapsearch -x -D "cn=Manager,dc=my-domain,dc=com" -W -H ldap://192.168.2.235 -b "uid=test,ou=People,dc=my-domain,dc=com"
[root@localhost tmp]# ldapsearch -x -D "cn=Manager,dc=my-domain,dc=com" -w 123456 -H ldap://192.168.2.235 -b "uid=test,ou=People,dc=my-domain,dc=com"
[root@localhost tmp]# ldapsearch -x -b "dc=my-domain,dc=com" -H ldap://192.168.2.235
[root@localhost tmp]# ldapsearch -x -b "dc=my-domain,dc=com" -H ldap://192.168.2.235 -b "uid=test,ou=People,dc=my-domain,dc=com"
# extended LDIF
#
# LDAPv3
# base <uid=test,ou=People,dc=my-domain,dc=com> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#
# test, People, my-domain.com
dn: uid=test,ou=People,dc=my-domain,dc=com
uid: test
cn: test
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
userPassword:: e2NyeXB0fSQ2JDdzLmpDaUhTY0tHZWpIbVQkakI2cXZuZGh2NXJSZHZ6M0pHY3d
UNWJ0cFloWTVZTXZjN3Fjb21LdE9NdkdTeTFjVHZ0ckI2b1NYbmFaZUwxOFZDeHkuQ2pPM1JSd3N3
RmRER21STjE=
shadowLastChange: 17641
shadowMin: 0
shadowMax: 99999
shadowWarning: 7
loginShell: /bin/bash
uidNumber: 500
gidNumber: 500
homeDirectory: /home/test
gecos: test
# search result
search: 2
result: 0 Success
# numResponses: 2
# numEntries: 1
[root@localhost tmp]# ldapdelete -x -D "cn=Manager,dc=my-domain,dc=com" -W "ou=Protocols,dc=my-domain,dc=com"
Enter LDAP Password:123456
如果你的本地系统已经使用migrate_all_online.sh进行过同步,删除一个用户非常简单:
ldapdelete -x -D "cn=admin,dc=netsafe,dc=qa,dc=net" -W "uid=seabird,ou=People,dc=netsafe,dc=qa,dc=net"
参数说明:
x:指定使用简单授权
D:指定LDAP的管理区
W:提示输入管理密码
最后的内容是指定删除的用户信息
当然,你也可以使用ldapmodify命令,在changetype时输入:delete
学习搭建LDAP用户认证管理服务器。前面章节介绍安装,后面介绍ldap使用命令行添加用户。
环境准备
两台虚拟机
node01 IP:192.168.242.100 server端
node02 IP:192.168.242.13 client端
均关闭iptables和selinux
步骤
分为server端操作和client端操作
server端
yum install openldap-servers -y
拷贝配置文件
cd /usr/share/openldap-servers/
cp slapd.conf.obsolete /etc/openldap/slapd.conf
创建LDAP管理员密码
slappasswd
输入两次后,保存密文
New password:
Re-enter new password:
{SSHA}VAJlsyl8s1wwIt9u+21axefNBxt6QjQf
编辑slapd配置文件
vim /etc/openldap/slapd.conf
修改其中cn,dc相关内容,及rootpw密文密码
database monitor
access to *
by dn.exact="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" read
by dn.exact="cn=Manager,dc=my-domain,dc=com" read
by * none
database bdb
suffix "dc=my-domain,dc=com"
checkpoint 1024 15
rootdn "cn=Manager,dc=my-domain,dc=com"
rootpw {SSHA}u9NKZTNKJxVHjRh7yluTDpiy0N7Hno4R
拷贝拷贝DB_CONFIG文件
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
删除默认配置 (否则添加ldap用户时会报错)
rm /etc/openldap/slapd.d/* -rf
设置目录权限
chown -R ldap:ldap /etc/openldap/
chown -R ldap:ldap /var/lib/ldap
测试并生成配置文件
# slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d
config file testing succeeded
出现succeed继续
启动服务并设置开机启动
chkconfig slapd on
/etc/init.d/slapd start
创建账号以备client登陆测试
useradd ldapuser1
echo '111111' | passwd --stdin ldapuser1
至此,这些用户仅仅是系统上存在的用户(存储在/etc/passwd和/etc/shadow上),并没有在LDAP数据库里,所以要把这些用户导入到LDAP里面去。但LDAP只能识别特定格式的文件 即后缀为ldif的文件(也是文本文件),所以不能直接使用/etc/passwd和/etc/shadow。 需要migrationtools这个工具把这两个文件转变成LDAP能识别的文件。
安装migrationtools工具
yum install migrationtools -y
配置migrationtools
cd /usr/share/migrationtools/
cd /usr/share/migrationtools/
修改
搜索”dc=”,值改为与slapd.conf一致内容
# Default DNS domain
$DEFAULT_MAIL_DOMAIN = "my-domain.com";
# Default base
$DEFAULT_BASE = "dc=my-domain,dc=com";
下面利用pl脚本将/etc/passwd 和/etc/shadow生成LDAP能读懂的文件格式,保存在/tmp/下
./migrate_base.pl > /tmp/base.ldif
./migrate_passwd.pl /etc/passwd > /tmp/passwd.ldif
./migrate_group.pl /etc/group > /tmp/group.ldif
导入LDAP
需要输入管理员密码
ldapadd -x -D "cn=Manager,dc=my-domain,dc=com" -W -f /tmp/base.ldif
ldapadd -x -D "cn=Manager,dc=my-domain,dc=com" -W -f /tmp/group.ldif
ldapadd -x -D "cn=Manager,dc=my-domain,dc=com" -W -f /tmp/passwd.ldif
重启服务
/etc/init.d/slapd restart
没有问题后,配置client端使用LDAP认证并挂载家目录
client端
client端使用system-config-authentication工具配置
system-config-authentication
之后配置简单不做叙述
注:如果提示需要安装软件包,安装即可
nscd-2.12-1.132.el6.x86_64
nss-pam-ldapd-0.7.5-18.2.el6_4.x86_64
LDAP命令行添加/删除用户
安装ldap工具migrationtools,并且配置migrationtools
vim /usr/share/migrationtools/migrate_common.ph
# Default DNS domain
$DEFAULT_MAIL_DOMAIN = "clustertech.com";
# Default base
$DEFAULT_BASE = "dc=clustertech,dc=com";
如安装ldap部分所述,使之符合目前的环境,主要修改部分,cn&dc
以下内容,其中your_passwd 为ldap管理员密码,his_passwd为新建用户初始密码。具体过程如下:
1. 新建本地用户
##注意,如果需要指定ldap中test的属组,此处也要指定
useradd test
转换UID至LDAP
cat /etc/passwd | grep test >/tmp/passwd.in
/usr/share/migrationtools/migrate_passwd.pl /tmp/passwd.in > /tmp/passwd.ldif
/usr/bin/ldapadd -x -D "cn=Manager,dc=clustertech,dc=com" -w your_passwd -f /tmp/passwd.ldif
转换GID至LDAP
cat /etc/group | grep test >/tmp/group.in
/usr/share/migrationtools/migrate_group.pl /tmp/group.in > /tmp/group.ldif
/usr/bin/ldapadd -x -D "cn=Manager,dc=clustertech,dc=com" -w your_passwd -f /tmp/group.ldif
删除本地用户,使用LDAP用户认证
userdel test
##如果ldap中test的家目录不变,可以不删除目录
#rm -rf /home/test
##查看新建用户结果
ldapsearch -x "uid=test"
设置用户初始密码
/usr/bin/ldappasswd -x -D "cn=Manager,dc=clustertech,dc=com" -w your_passwd "uid=test,ou=People,dc=clustertech,dc=com" -s his_passwd
其中’-s’ 指定密码 ‘-S’ 使用交互模式指定密码;同 ‘-w’
设置用户家目录
ldapmodify -x -D "cn=admin,dc=cas,dc=cn" -W
按照提示输入ldap管理员密码之后
dn: uid=test,ou=People,dc=cas,dc=cn
changetype: modify
replace: homeDirectory
##导入UID时,默认家目录就是/home/test,此步骤按需操作。
homeDirectory: /home/test
如果没有/home/test目录理应是系统自动建立,如果没有建立,手动建立并执行:
mkdir /home/test
cp /etc/skel/.bash* /home/test
chown test.test /home/test -R
chmod 700 /home/test
##测试
[root@ldap ~]# su - test
[test@ldap ~]$ pwd
/home/test
##正常登陆,并且登陆只/home/test目录正常
##删除用户
ldapdelete -x -D "cn=Manager,dc=clustertech,dc=com" -w your_passwd "uid=test,ou=People,dc=clustertech,dc=com"
https://www.jishux.com/plus/view-626741-1.html
http://www.cnblogs.com/musenl/p/5621293.html
http://lansgg.blog.51cto.com/5675165/1544951
https://my.oschina.net/5lei/blog/193484
http://www.learnitguide.net/2016/01/configure-openldap-server-on-rhel7.html