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

配置脚本:

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. 经常使用的js三元表达式

    语法:条件?表达式1:表达式2 .  条件的括号可要可不要的 let istrue = true; let a = (istrue === true) ? '我是true啊' : "我是fa ...

  2. include和require的区别(PHP版本7)

    亲自测试了一下,发现include有条件包含require无条件包含这个区别在PHP7版本中(据说PHP5以后)是不存在的了,也就是在if(false){ } 中都不会执行:还有一个返回值的问题,测试 ...

  3. 提示 ToolTip

    <StackPanel> <Button Content="按钮1" ToolTip="这是个按钮1" HorizontalAlignment ...

  4. Word:表格无法分页显示

    造冰箱的大熊猫@cnblogs 2019/1/30 今天遇到一个Word中表格无法分页显示的问题,特记录下来以备后查 我们知道,在Word中将表格不设置为“允许跨页断行”,假设表格中第二行某个单元格的 ...

  5. AtCoder AGC004E Salvage Robots (DP)

    题目链接 https://atcoder.jp/contests/agc004/tasks/agc004_e 题解 本题的难度不在于想到大体思路,而在于如何把代码写对.. 首先我们可以不让机器人动,让 ...

  6. TypeScript----接口和泛型

    接口 TypeScript的核心原则之一是对值所具有的结构进行类型检查.它有时被称做“鸭式辨型法”或“结构性子类型化”.在TypeScript里,接口的作用就是为这些类型命名和为你的代码或第三方代码定 ...

  7. mysql5.7以上基本配置

    MySQL表名区分大小写设置 关闭MySQL服务 在服务运行目录找到my.ini或者my.cnf文件 find / -name my.cnf 打开文件,找到[mysqld]在下面增加一行 lower_ ...

  8. Nginx-rtmp之监听端口的管理

    1. 概述 监听端口属于 server 虚拟主机,它是由 server{} 块下的 listen 配置项决定的. 每监听一个 TCP 端口,都将使用一个独立的 ngx_rtmp_conf_port_t ...

  9. 黑马vue---14、v-model双向绑定

    黑马vue---14.v-model双向绑定 一.总结 一句话总结: 1.v-bind 只能实现数据的单向绑定,从 M 自动绑定到 V, 无法实现数据的双向绑定 2.v-model 指令,可以实现 表 ...

  10. AsyncTaskMethodBuilder

    AsyncTaskMethodBuilder Represents a builder for asynchronous methods that return a task. public stru ...