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

配置脚本:

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. ant-design-vue 修改组件样式

    /deep/ .ant-input { border-radius: 50px; }

  2. query mousedown()方法 语法

    query mousedown()方法 语法 作用:当鼠标指针移动到元素上方,并按下鼠标按键时,会发生 mousedown 事件.与 click 事件不同,mousedown 事件仅需要按键被按下,而 ...

  3. java内存区域以及GC回收

    参考资料: http://www.cnblogs.com/zhguang/p/3257367.html 概要: Java GC机制主要完成3件事:确定哪些内存需要回收,确定什么时候需要执行GC,如何执 ...

  4. 【CUDA 基础】0.0 腾讯云CUDA环境搭建

    title: [CUDA 基础]0.0 腾讯云CUDA环境搭建 categories: CUDA Freshman tags: CUDA 环境搭建 toc: true date: 2018-02-13 ...

  5. vfprintf()函数

    函数声明:int vfprintf(FILE *stream, const char *format, va_list arg) 函数参数: stream—这是指向了FILE对象的指针,该FILE对象 ...

  6. Quartz.NET 作业调度(一):Test

    Quartz.NET 是一个开源的作业调度框架,是 Java 作业调度框架 Quartz 的.NET 版本,对于周期性的任务,其作业和触发器的结合,极大的简化了代码的编写,大多时候我们只需要关注作业本 ...

  7. Codeforces Gym 101630J Travelling from Petersburg to Moscow (最短路)

    题目链接 http://codeforces.com/gym/101630/attachments 题解 zyb学长的题. 先枚举第\(k\)大的边权,设其边权为\(x\),然后把每条边边权减掉\(x ...

  8. MySQL_(Java)使用JDBC创建用户名和密码校验查询方法

    MySQL_(Java)使用JDBC向数据库发起查询请求 传送门 MySQL数据库中的数据,数据库名garysql,表名garytb,数据库中存在的用户表 通过JDBC对MySQL中的数据用户名和密码 ...

  9. CodeForces 724C Ray Tracing(碰撞类,扩展gcd)

    又一次遇到了碰撞类的题目,还是扩展gcd和同余模方程.上次博客的链接在这:http://www.cnblogs.com/zzyDS/p/5874440.html. 现在干脆解同余模直接按照套路来吧,如 ...

  10. 关于数据库表设计之区域表system_district:省市县街道四级地址表

    关于省市县的数据表的设计有两种方式: 一.将其设计成一张表 DROP TABLE IF EXISTS `system_district`; CREATE TABLE `system_district` ...