背景:客服那边人员流动性大,经常需要配置账号,每次创建账号配置权限比较繁琐。

配置脚本:

ldapadduser.sh

#!/bin/bash
# add ldap user
if [ $# -ne ] || [[ $ -ne "cn" || $ -ne "eu" ]] || [[ $ -ne "dev" || $ -ne "cs" ]];then
echo "Usage: /bin/bash $0 username [cn|eu] [dev|cs] ." && exit
fi mail_address="xxxxx.com" if [ $ == "eu" ];then
mail_address="xxxxx.com"
fi cat > add_user.ldif << EOF
dn: cn=$@$mail_address,ou=People,dc=ldap,dc=xxxx,dc=net
objectClass: inetOrgPerson
objectClass: top
mail: $@$mail_address
sn: $
cn: $@$mail_address
userPassword: $@$mail_address
EOF if [ $ == "cs" ];then
cat >add_group.ldif<<EOF
dn: cn=confluence-users,ou=confluence,dc=ldap,dc=xxxx,dc=net
changetype: modify
add: uniqueMember
uniqueMember: cn=$@$mail_address,ou=People,dc=ldap,dc=xxxx,dc=net
#add: 添加的属性 ,uniqueMember: cn... 添加的属性值 视个人情况更改 dn: cn=customer service team,ou=confluence,dc=ldap,dc=xxxx,dc=net
changetype: modify
add: uniqueMember
uniqueMember: cn=$@$mail_address,ou=People,dc=ldap,dc=xxxx,dc=net dn: cn=jira-software-users,ou=jira,dc=ldap,dc=xxxx,dc=net
changetype: modify
add: uniqueMember
uniqueMember: cn=$@$mail_address,ou=People,dc=ldap,dc=xxxx,dc=net
EOF
elif [ $ == "dev" ];then
cat >add_group.ldif<<EOF
dn: cn=confluence-users,ou=confluence,dc=ldap,dc=xxxx,dc=net
changetype: modify
add: uniqueMember
uniqueMember: cn=$@$mail_address,ou=People,dc=ldap,dc=xxxx,dc=net dn: cn=developer,ou=confluence,dc=ldap,dc=xxxx,dc=net
changetype: modify
add: uniqueMember
uniqueMember: cn=$@$mail_address,ou=People,dc=ldap,dc=xxxx,dc=net dn: cn=harbor-dev-developer,ou=harbor,dc=ldap,dc=xxxx,dc=net
changetype: modify
add: member
member: cn=$@$mail_address,ou=People,dc=ldap,dc=xxxx,dc=net dn: cn=jenkins-dev-build,ou=jenkins,dc=ldap,dc=xxxx,dc=net
changetype: modify
add: uniqueMember
uniqueMember: cn=$@$mail_address,ou=People,dc=ldap,dc=xxxx,dc=net dn: cn=kibana-software-users,ou=kibana,dc=ldap,dc=xxxx,dc=net
changetype: modify
add: uniqueMember
uniqueMember: cn=$@$mail_address,ou=People,dc=ldap,dc=xxxx,dc=net dn: cn=rabbitmq-dev-management,ou=rabbitmq,dc=ldap,dc=xxxx,dc=net
changetype: modify
add: uniqueMember
uniqueMember: cn=$@$mail_address,ou=People,dc=ldap,dc=xxxx,dc=net dn: cn=jira-software-users,ou=jira,dc=ldap,dc=xxxx,dc=net
changetype: modify
add: uniqueMember
uniqueMember: cn=$@$mail_address,ou=People,dc=ldap,dc=xxxx,dc=net
EOF
fi
#echo "######请输入ldap管理员密码#####"
echo "#####创建用户#####"
/usr/bin/ldapadd -D cn=Manager,dc=ldap,dc=xxxx,dc=net -y .ldappasswd -x -f add_user.ldif
echo "#####配置权限组#####"
/usr/bin/ldapadd -D cn=Manager,dc=ldap,dc=xxxx,dc=net -y .ldappasswd -x -f add_group.ldif
if [ $? -eq ];then
echo "添加用户成功"
else
echo "添加用户失败"
fi
printf "ldapadminpassword" >./.ldappasswd       
chmod 400 ./.ldappasswd

#dev为开发人员,cs为客服人员  分别配置不同的权限

#cn为国内同事,eu为欧洲同事,使用邮箱不一样 所以需要区分下

脚本执行示例:

sh ldapadduser.sh test01 cn cs

添加完成后去ldap管理页面查看用户是否添加成功及相应的权限是否配置正确。

脚本自动创建ldap账号的更多相关文章

  1. 案例九:shell脚本自动创建多个新用户,并设置密码

    此脚本是用来批量创建用户并设置用户密码,在企业用非常实用. 脚本一 #!/bin/bash for name in $( seq 1 100 ) do useradd "user$name& ...

  2. Golang bash脚本自动创建一个go工程

    原作者的代码里面,存在智能引号问题,所以他的代码并不能正常运行: 这个是我微调后的版本. 代码如下: #!/bin/bash #————————————– # Module : mk_go_pro.s ...

  3. 【shell脚本】创建账户及删除账户,批量创建账户及批量删除账户===autoCreateUser.sh

    一.字符串运算符 二.创建账户 1.提示用户输入用户名和密码,脚本自动创建相应的账户及配置密码.如果用户不输入账户名,则提示必须输入账户名并退出脚本;如果用户不输入密码,则统一使用默认的 123456 ...

  4. Unity VS 创建脚本自动添加头注释-时间-描述-作者等信息

    Unity生成脚本自动添加头注释 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心 ...

  5. 通过Shell脚本来创建批量服务器上的MySQL数据库账号

    1.项目背景 因监控需要,我们需要在既有的每个MySQL实例上创建一个账号.公司有数百台 MySQL 实例,如果手动登入来创建账号很麻烦,也不现实.所以,我们写了一个简单的shell脚本,用来创建批量 ...

  6. 运维常用shell脚本一(系统指标巡检、自动创建用户、跳板机)

    一.系统指标巡检脚本 #!/bin/bash menu(){ cat <<EOF +---------------------------------------------+ | 日常巡 ...

  7. 自动创建新序列号的Cookies脚本

    已知一个网站在被访问的时候会读取电脑上存储的cookies 如果已经有cookie变量存在 则在存在的变量后按顺序增加新的序列 如电脑上有vst1变量的cookie了 那么新用户则自动创建为 vst2 ...

  8. Jenkins 配合 GitLab 实现分支的自动合并、自动创建 Tag

    Jenkins 配合 GitLab 实现分支的自动合并.自动创建 Tag 背景 GitFlow工作流简介 Gitflow工作流定义了一个围绕项目发布的严格分支模型,它会相对复杂一点,但提供了用于一个健 ...

  9. oracle11g interval(numtoyminterval())自动创建表分区

    Oracle11g通过间隔分区实现按月创建表分区 在项目数据库设计过程中由于单表的数据量非常庞大,需要对表进行分区处理.由于表中的数据是历史交易,故按月分区,提升查询和管理. 由于之前对于表分区了解不 ...

随机推荐

  1. [CTF]Heap vuln -- unlink

    0x00: 起因 一直在堆的漏洞利用中不得要领,之前ZCTF又是三个堆的利用,血崩,chxx表哥给写了一个heap的pwn,学习学习. 0x01: 关于heap的unlink的漏洞利用,出的很早,在低 ...

  2. Struts增删改查

    1.导入相关的pom依赖(struts.自定义标签库的依赖) <dependency> <groupId>jstl</groupId> <artifactId ...

  3. AcWing:143. 最大异或对(01字典树 + 位运算 + 异或性质)

    在给定的N个整数A1,A2……ANA1,A2……AN中选出两个进行xor(异或)运算,得到的结果最大是多少? 输入格式 第一行输入一个整数N. 第二行输入N个整数A1A1-ANAN. 输出格式 输出一 ...

  4. Java 注解指导手册(下)

    9. 自定义注解   正如我们之前多次提及的,可以定义和实现自定义注解.本章我们即将探讨. 首先,定义一个注解:   public @interface CustomAnnotationClass   ...

  5. OUC_Summer Training_ DIV2_#5

    这是做的最好的一次了一共做了4道题  嘻嘻~ A - Game Outcome Time Limit:2000MS     Memory Limit:262144KB     64bit IO For ...

  6. centos6.5和centos7如何搭建php环境(包括php7)

    查看下centos的版本信息: #适用于所有的linux lsb_release -a #或者 cat /etc/redhat-release #又或者 rpm -q centos-release 安 ...

  7. wps技巧

    1.页面颜色设置页面布局->背景 2.图片等比例缩放按住shift 3.想任意挪动图片 设置为文字环绕型 4.word由分节符构成.可以看左下角节的显示.一个页可以划分多节.页总数<=节总 ...

  8. mysql删除数据库所有表

    -- 生成删除xxx数据库的所有表的sql语句SELECT CONCAT('drop table ',table_name,';') FROM information_schema.`TABLES` ...

  9. JDK压缩指针

    https://www.cnblogs.com/iceAeterNa/p/4877549.html

  10. leetcode探索中级算法

    leetcode探索中级答案汇总: https://leetcode-cn.com/explore/interview/card/top-interview-questions-medium/ 1)数 ...