Chinaunix

标题: 如何在脚本里面批量添加用户和密码 [打印本页]

作者: now163    时间: 2014-07-29 18:00
标题: 如何在脚本里面批量添加用户和密码
本帖最后由 now163 于 2014-07-29 22:17 编辑

目前有一个批量添加ldap账户的需求,分别有user.txt,passwd.txt
cat -n user.txt
1   test01
2   test01

cat -n passwd.txt
1   {crypt}$1$$CEfu80ee2k3Kd2B1su.bv1
2   {crypt}$1$eGSiENMg$bsszlc.65SJ6uOomQQCLv1
账户密码要一一对应。

下面是原脚本里面的一段,小白不会修改
  1. add_new_user()
  2. {
  3.     USERNAME="$(echo $1 | tr [A-Z] [a-z])"
  4.     MAIL="$( echo $2 | tr [A-Z] [a-z])"

  5.     # Create template LDIF file for this new user and add it.
  6.     # If you do *NOT* want to keep rootpw in script, use '-W' instead of
  7.     # '-w "${BINDPW}".

  8.     maildir="$( hash_domain ${DOMAIN_NAME})/$( hash_maildir ${USERNAME} )"

  9.     # Generate user password.
  10.     if [ X"${USE_DEFAULT_PASSWD}" == X"YES" ]; then
  11.         PASSWD="$(slappasswd -h {${CRYPT_MECH}} -s ${DEFAULT_PASSWD})"
  12.     else
  13.         PASSWD="$(slappasswd -h {${CRYPT_MECH}} -s ${USERNAME})"
  14.     fi
  15.     ldapadd -x -D "${BINDDN}" -w "${BINDPW}" <<EOF
  16. dn: mail=${MAIL},${OU_USER_DN},${DOMAIN_DN},${BASE_DN}
  17. objectClass: inetOrgPerson
  18. objectClass: shadowAccount
  19. objectClass: amavisAccount
  20. objectClass: mailUser
  21. objectClass: top
  22. accountStatus: active
  23. storageBaseDirectory: ${STORAGE_BASE}
  24. homeDirectory: ${STORAGE_BASE_DIRECTORY}/${maildir}
  25. mailMessageStore: ${STORAGE_NODE}/${maildir}
  26. mail: ${MAIL}
  27. mailQuota: ${QUOTA}
  28. userPassword:[b] ${PASSWD}[/b]
  29. cn: ${USERNAME}
  30. sn: ${USERNAME}
  31. givenName: [b]${USERNAME}[/b]
  32. uid: ${USERNAME}
  33. shadowLastChange: 0
  34. amavisLocal: TRUE
  35. enabledService: internal
  36. enabledService: doveadm
  37. enabledService: lib-storage
  38. enabledService: mail
  39. enabledService: pop3
  40. enabledService: pop3secured
  41. enabledService: imap
  42. enabledService: imapsecured
  43. enabledService: managesieve
  44. enabledService: managesievesecured
  45. enabledService: sieve
  46. enabledService: sievesecured
  47. enabledService: smtp
  48. enabledService: smtpsecured
  49. enabledService: deliver
  50. enabledService: lda
  51. enabledService: lmtp
  52. enabledService: forward
  53. enabledService: senderbcc
  54. enabledService: recipientbcc
  55. enabledService: shadowaddress
  56. enabledService: displayedInGlobalAddressBook
  57. ${LDIF_PUREFTPD_USER}
  58. EOF
  59. }

复制代码
里面的$1是域名:abc.com  $2是user 脚本添加的时候可以用./add.sh abc.com $(cat user.txt)
默认是用slappasswd生成一个和用户名相同的密码,怎样才能改成我的需求呢?

请各位帮帮忙,免去我手动修改几百个的账户信息
作者: Shell_HAT    时间: 2014-07-29 21:39
直接发代码,不要截图。
作者: now163    时间: 2014-07-29 22:00
@Shell_HAT已经编辑啦
作者: Shell_HAT    时间: 2014-07-29 22:08
多发点代码,这一段看不出是怎样生成ldif文件的
作者: now163    时间: 2014-07-29 22:18
回复 4# Shell_HAT


    我把后面的ldapadd部分贴出来啦




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2