LDAP批量导用户.note

noteId: E9BE0467D90142B7AF9370C222DB7E73 · 原始路径:/ALL/Linux - A模块/服务配置/Open LDAP/LDAP批量导用户.note · 图片:11 · 附件待处理:0

 
/usr/sbin/ldapadduser
vim /etc/ldap/usertemp #这个usertemp文件是作为模板的,叫什么都可以
 
注意 inetorgperson 和 默认的 account 属性是冲突的
#1111
mail配置如果是多个域名的话就需要留空
 
#配置查询
grep -r <需要查询的内容> slapd.d/  #如inet、mail之类的
#解释
1行:默认是Uid,需要改成cn,因为cn是国外的标准,47届比赛丢分就就丢在这
2行:objectclass是属于用户类型的设置,需要额外调用,要看slapd.d文件,一般评分不看,有时会看
4、5、6、13行:这三行需要看给的users.csv文件中的参数,结合自己写的.sh脚本文件更改
vim /etc/ldap/sb.sh
在执行代码前需要将用户所在的组创建好
ldapaddgroup users
2行:使用cat命令读取用户表,并将读取到的内容给变量line
4-8行:将读取到的内容转换为变量,方便调用
10-13行:修改usertemp模板中的内容测试,使用sed命令-i直接修改文件,
/^ 该字符是表示行首
.*表示命令后的任意字符
第十行的具体意思就是(使用sed -i 命令参数 将以givenname开头且无论后面有什么字符,都替换为givenname: $given ,%given是前面定义的变量)
15行:删除创建的用户
16行:创建用户到users组中
17行:为用户添加密码
vim /etc/ldapscripts.conf  #将脚本模板路径让ldap识别,不识别读取不到模板
更改用户表的内容,将空行替换为;
一般外国人的名字都是名在前姓在后,所以givenname选项下填的都是名字前面那段,而sn是后面那段
使用windows , win + r ,打开notepad,将users.csv中的内容复制自己需要的部分到notepad中如:
然后复制其中的空行,到ctrl + F 中替换为;
再复制姓名间的空格,替换为;
最后将更改好的用户表复制到LDAP服务器中
touch /etc/ldap/users
vim users
点击vm边缘,CTRL + V 复制进去,一次复制不完就分几次复制,注意内容完整就行
然后可以使用 :g/^$/d 命令清除空行
也可以以使用egrep -v "^$" a > users
最重要的是,一定要使用英文字符,如果是中文字符他会无法识别
执行脚本
bash sb.sh
 
测试:
ldapsearch -H ldap://localhost -b dc=itnsa.cn,dc=cn -x -D "cn=admin,dc=itnsa,dc=cn" -w Skills39 | less