脚本自动创建ldap账号

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

配置脚本:

ldapadduser.sh

#!/bin/bash
# add ldap user
if [ $# -ne 3 ]  ||  [[ $2 -ne "cn"  ||  $2 -ne "eu"  ]] || [[ $3 -ne "dev"  ||  $2 -ne "cs"  ]];then
   echo "Usage: /bin/bash $0 username [cn|eu] [dev|cs] ." && exit 1
fi

mail_address="xxxxx.com"

if [ $2 == "eu" ];then
    mail_address="xxxxx.com"
fi

cat > add_user.ldif << EOF
dn: cn=$1@$mail_address,ou=People,dc=ldap,dc=xxxx,dc=net
objectClass: inetOrgPerson
objectClass: top
mail: $1@$mail_address
sn: $1
cn: $1@$mail_address
userPassword: $1@$mail_address
EOF

if [ $3 == "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=$1@$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=$1@$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=$1@$mail_address,ou=People,dc=ldap,dc=xxxx,dc=net EOF elif [ $3 == "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=$1@$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=$1@$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=$1@$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=$1@$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=$1@$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=$1@$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=$1@$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 0 ];then echo "添加用户成功" else echo "添加用户失败" fi
printf "ldapadminpassword" >./.ldappasswd       
chmod 400 ./.ldappasswd

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

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

脚本执行示例:

sh ldapadduser.sh test01 cn cs

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

posted @ 2019-08-03 08:45  imcati  阅读(1224)  评论(0编辑  收藏  举报