La implementación de OpenLDAP permite que solo el usuario root establezca contraseñas de cuentas

La implementación de OpenLDAP permite que solo el usuario root establezca contraseñas de cuentas

Estoy trabajando en una aplicación que requiere el uso de activos de AWS ParallelCluster para un procesamiento de alto rendimiento. Después de la configuración inicial, necesitamos poder agregar/eliminar cuentas de usuario y estoy intentando configurarlo de acuerdo conestas instruccionesque explican cómo configurar un servicio de directorio openLDAP simple en el cabezal del clúster para este propósito.

He seguido con éxito esas instrucciones y puedo crear una cuenta LDAP que no sea de administrador. Cuando inicio sesión como root, puedo configurar la contraseña de esta cuenta siguiendo este comando:

sudo ldappasswd -H ldap://localhost:389 -x -D "cn=ldapadmin,dc=<stack_name>,dc=internal" -W -S uid=<username>,ou=Users,dc=<stack_name>,dc=internal -y <path/to/file/with/LDAP/password>

En este punto, puedo cambiar a la nueva cuenta LDAP de no administrador. Desafortunadamente, si mientras estoy conectado como este usuario, ejecuto el comando passwd, aparece el siguiente error:

password change failed: Insufficient access
passwd: Authentication token manipulation error

¿Cómo puedo configurar mi aplicación de openLDAP para que los usuarios no administradores puedan cambiar su propia contraseña?

Respuesta1

Las instrucciones a las que se vincula parecen indicarle que cree una base de datos OpenLDAP sin control de acceso, lo que básicamente significa escritura y * lectura de olcRootDn. (Todos sus usuarios de OpenLDAP pueden leer todo lo que hay en la base de datos e incluso volcarlo si pueden descubrir cómo sortear el límite predeterminado de 500 lecturas). Querrás ajustar eso primero.

Mínimo viable:

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcAccess
olcAccess: {0}to attrs=userPassword
  by self write
  by * auth
olcAccess: {1}to *
  by * read

información relacionada