====== Instalar LDAP ====== # apt-get install slapd ldap-utils Administrator Password: ********** Miramos estructura LDAP: root@ldap1:~# slapcat dn: dc=lobo99,dc=info objectClass: top objectClass: dcObject objectClass: organization o: lobo99.info dc: lobo99 structuralObjectClass: organization entryUUID: 2f9222aa-9998-1035-9dbc-0939660bb676 creatorsName: cn=admin,dc=lobo99,dc=info createTimestamp: 20160418100055Z entryCSN: 20160418100055.284922Z#000000#000#000000 modifiersName: cn=admin,dc=lobo99,dc=info modifyTimestamp: 20160418100055Z dn: cn=admin,dc=lobo99,dc=info objectClass: simpleSecurityObject objectClass: organizationalRole cn: admin description: LDAP administrator userPassword:: e1NTSEF9QUVqck5ZSGlJTnIzSnJPTGt2OG1adk1kVHliNEI2M2g= structuralObjectClass: organizationalRole entryUUID: 2f924adc-9998-1035-9dbd-0939660bb676 creatorsName: cn=admin,dc=lobo99,dc=info createTimestamp: 20160418100055Z entryCSN: 20160418100055.286000Z#000000#000#000000 modifiersName: cn=admin,dc=lobo99,dc=info modifyTimestamp: 20160418100055Z ====== Creación usuario ====== Mas info: https://wiki.legido.com/doku.php?id=informatica:linux:ldap:instalacion&s[]=openldap Creamos ldif. **IMPORTANTE** Tiene que ser inetorgperson para que tenga uid y posixAccount hay que meter todos los campos: dn: cn=jur,dc=lobo99,dc=info objectClass: simpleSecurityObject objectclass: inetorgperson objectClass: posixAccount cn: jur sn: legido uid: jur uidnumber: 1001 gidNumber: 1001 homeDirectory: /home/jur loginshell: /bin/bash description: Jose userPassword: 12345 # ldapadd -x -w ******* -D "cn=admin,dc=lobo99,dc=info" -f jose.ldif ====== Cliente LDAP ====== # apt-get install libnss-ldapd Servidor: ldap://ldap.lobo99.info Base: dc=lobo99,dc=info Marcar Servicios: group passwd shadow Para hacer debug si no loga, en el servidor: Si hacemos: # getent passwd Nos tienen que salir los usuarios que tiene en el ldap. Si no aparece, arrancamos en modo debug: # /etc/init.d/nscd stop # /etc/init.d/nslcd stop # nslcd -d Por ejemplo podemos ver que el filtro no saca ningún usuario: nslcd: [8b4567] DEBUG: myldap_search(base="dc=lobo99,dc=info", filter="(&(objectClass=posixAccount)(uid=joseuid))") ....... nslcd: [8b4567] DEBUG: ldap_result(): end of results (0 total) Puede ser que por ejemplo no tenga la clase posixAccount Si funciona bien sale: nslcd: [7b23c6] DEBUG: ldap_simple_bind_s(NULL,NULL) (uri="ldap://192.168.2.101:389") nslcd: [7b23c6] DEBUG: ldap_result(): cn=jur,dc=lobo99,dc=info nslcd: [7b23c6] DEBUG: ldap_result(): end of results (1 total) ===== Crear directorio home en el primer login ===== Requisito: tener instalado el paquete libpam-ldapd Añadir la siguiente línea a: /etc/pam.d/common-session session required pam_mkhomedir.so skel=/etc/skel umask=0022 ===== Hacer sudo a un grupo ===== Creamos el grupo de sudos en ldap grupoldapsudo.ldif: dn: ou=groups,dc=lobo99,dc=info objectclass: organizationalUnit objectclass: top ou: groups dn: cn=grupoldapsudo,ou=groups,dc=lobo99,dc=info cn: grupoldapsudo gidnumber: 1001 objectclass: posixGroup objectclass: top ldapadd -x -w ******** -D "cn=admin,dc=lobo99,dc=info" -f grupoldapsudo.ldif Para añadir usuarios: dn: cn=grupoldapsudo,ou=groups,dc=lobo99,dc=info changetype: modify add: memberuid memberuid: jur ldapmodify -x -w ******** -D "cn=admin,dc=lobo99,dc=info" -f grupoldapsudo_add.ldif En el cliente, instalar el paquete: apt-get install sudo-ldap Crear el fichero: /etc/sudoers.d/ldap %grupoldapsudo ALL=(ALL:ALL) ALL