Se instala sldap y ldap-utils:
# apt-get install sldap ldap-utils
Para ver la estructura del directorio:
# slapcat
dn: dc=local objectClass: top objectClass: dcObject objectClass: organization o: local dc: local structuralObjectClass: organization entryUUID: f2f83dea-8fe9-1031-826c-7fd463503b84 creatorsName: cn=admin,dc=local createTimestamp: 20120910232110Z entryCSN: 20120910232110.032904Z#000000#000#000000 modifiersName: cn=admin,dc=local modifyTimestamp: 20120910232110Z dn: cn=admin,dc=local objectClass: simpleSecurityObject objectClass: organizationalRole cn: admin description: LDAP administrator userPassword:: e1NTSEF9QkxhV2RyU3VMem54NFB5NTRWNE56Nk1jeFZRZjhiTHU= structuralObjectClass: organizationalRole entryUUID: f2f8a2ee-8fe9-1031-826d-7fd463503b84 creatorsName: cn=admin,dc=local createTimestamp: 20120910232110Z entryCSN: 20120910232110.035495Z#000000#000#000000 modifiersName: cn=admin,dc=local modifyTimestamp: 20120910232110Z
Búsqueda:
# ldapsearch -x -W -D "cn=admin,dc=local" -H ldap://10.139.66.214 Enter LDAP Password: # extended LDIF # # LDAPv3 # base <dc=lobo, dc=com> (default) with scope subtree # filter: (objectclass=*) # requesting: ALL # # search result search: 2 result: 32 No such object # numResponses: 1
BUSCAR
$ ldapsearch -x -w prova -D "cn=admin,dc=local" -b "cn=jose,cn=admin,dc=local" -H ldap://10.139.66.214 # extended LDIF # # LDAPv3 # base <cn=jose,cn=admin,dc=local> with scope subtree # filter: (objectclass=*) # requesting: ALL # # jose, admin, local dn: cn=jose,cn=admin,dc=local aliasedObjectName: cn=admin,dc=local objectClass: top objectClass: alias objectClass: extensibleObject cn: jose # search result search: 2 result: 0 Success # numResponses: 2 # numEntries: 1
Añadir usuario:
ldapadd -H ldap://10.139.66.214 -x -w prova -D "cn=admin,dc=local" -f /tmp/ldif.ldif
Podemos poner la contraseña encriptada o sin encriptar y luego la encripta. Una lleva dos veces dos puntos y la otra solo una
userPassword:: MTIzNDU= userPassword: 12345
Ejemplo /tmp/ldif.ldif
dn: cn=jose,dc=local objectClass: simpleSecurityObject objectClass: organizationalRole cn: jose description: Prueba userPassword: 12345
Luego podemos cambiar la contraseña como admin a todos o cada usuario a si mismo:
# ldappasswd -x -h 192.168.1.103 -D "cn=jose,dc=Home" -W "cn=jose,dc=Home" -S
Fuente: http://electron-swamp.blogspot.com.es/2014/04/initializing-openldap-database-with.html
ldapmodify -Q -Y EXTERNAL -H ldapi:/// <<EOF dn: olcDatabase={1}mdb,cn=config changetype: modify replace: olcSuffix olcSuffix: dc=matarosensefils,dc=net EOF
ldapmodify -Q -Y EXTERNAL -H ldapi:/// <<EOF dn: olcDatabase={1}mdb,cn=config changetype: modify replace: olcRootDN olcRootDN: cn=admin,dc=matarosensefils,dc=net EOF
# slappasswd New password: Re-enter new password: {SSHA}rrcFTS2o1GZDWmZKv9XS8p3UO4mNG1RP
ldapmodify -Q -Y EXTERNAL -H ldapi:/// <<EOF dn: olcDatabase={1}mdb,cn=config changetype: modify replace: olcRootPW olcRootPW: *********** EOF
ldapsearch -h 192.168.1.103 -D "cn=admin,dc=matarosensefils,dc=net" -W -b "dc=matarosensefils,dc=net"
ldapadd -x -W -D cn=admin,dc,dc=matarosensefils,dc=net -H ldapi:/// <<EOF dn: dc=matarosensefils,dc=net objectClass: domain dc: matarosensefils description: Matarosensefils.net EOF
Añadimos un usuario:
ldapadd -x -W -D "cn=admin,dc=matarosensefils,dc=net" <<EOF dn: cn=jose,dc=matarosensefils,dc=net objectClass: simpleSecurityObject objectClass: organizationalRole cn: jose description: Prueba userPassword: 12345 EOF
# ldapadd -x -w fragacabron -D "cn=admin,dc=matarosensefils,dc=net" -f grupo.ldif
dn: ou=usuaris, dc=matarosensefils,dc=net ou: usuaris description: Usuaris objectclass: organizationalunit
# ldapadd -x -w fragacabron -D "cn=admin,dc=matarosensefils,dc=net" -f usuari.ldif
dn: cn=jose,ou=usuaris,dc=matarosensefils,dc=net objectclass: inetOrgPerson cn: Jose Legido sn: Legido uid: jose userpassword: 12345 mail: jose@legido.com description: Admin i Fades ou: admin ou: fades