add-readonly-user.sh 1.6 KB

1234567891011121314151617181920212223242526272829303132333435
  1. #!/bin/bash -e
  2. # Usage :
  3. # ./add-readonly-user.sh LDAP_DOMAIN LDAP_ADMIN_PASSWORD LDAP_READONLY_USERNAME LDAP_READONLY_PASSWORD
  4. # Example :
  5. # ./add-readonly-user.sh example.org admin readonly readonly-password
  6. LDAP_DOMAIN=$1
  7. LDAP_ADMIN_PASSWORD=$2
  8. LDAP_READONLY_USERNAME=$3
  9. LDAP_READONLY_PASSWORD=$4
  10. function get_ldap_base_dn() {
  11. LDAP_BASE_DN=""
  12. IFS='.' read -ra LDAP_BASE_DN_TABLE <<< "$LDAP_DOMAIN"
  13. for i in "${LDAP_BASE_DN_TABLE[@]}"; do
  14. EXT="dc=$i,"
  15. LDAP_BASE_DN=$LDAP_BASE_DN$EXT
  16. done
  17. LDAP_BASE_DN=${LDAP_BASE_DN::-1}
  18. }
  19. get_ldap_base_dn
  20. LDAP_READONLY_PASSWORD_ENCRYPTED=$(slappasswd -s $LDAP_READONLY_PASSWORD)
  21. sed -i "s|{{ LDAP_READONLY_USERNAME }}|${LDAP_READONLY_USERNAME}|g" /container/service/slapd/assets/config/readonly-user/readonly-user.ldif
  22. sed -i "s|{{ LDAP_READONLY_PASSWORD_ENCRYPTED }}|${LDAP_READONLY_PASSWORD_ENCRYPTED}|g" /container/service/slapd/assets/config/readonly-user/readonly-user.ldif
  23. sed -i "s|{{ LDAP_BASE_DN }}|${LDAP_BASE_DN}|g" /container/service/slapd/assets/config/readonly-user/readonly-user.ldif
  24. sed -i "s|{{ LDAP_READONLY_USERNAME }}|${LDAP_READONLY_USERNAME}|g" /container/service/slapd/assets/config/readonly-user/readonly-user-acl.ldif
  25. sed -i "s|{{ LDAP_BASE_DN }}|${LDAP_BASE_DN}|g" /container/service/slapd/assets/config/readonly-user/readonly-user-acl.ldif
  26. ldapmodify -h localhost -p 389 -D cn=admin,$LDAP_BASE_DN -w $LDAP_ADMIN_PASSWORD -f /container/service/slapd/assets/config/readonly-user/readonly-user.ldif
  27. ldapmodify -Y EXTERNAL -Q -H ldapi:/// -f /container/service/slapd/assets/config/readonly-user/readonly-user-acl.ldif