A implementação do OpenLDAP permite que apenas o usuário root defina senhas de contas

A implementação do OpenLDAP permite que apenas o usuário root defina senhas de contas

Estou trabalhando em um aplicativo que requer o uso de ativos AWS ParallelCluster para algum processamento de alto desempenho. Após a configuração inicial, precisamos adicionar/remover contas de usuário e estou tentando configurar isso de acordo comestas instruçõesque explicam como configurar um serviço de diretório openLDAP simples no cluster head para essa finalidade.

Segui essas instruções com sucesso e consigo criar uma conta LDAP não administrativa. Quando logado como root, posso definir a senha desta conta seguindo 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>

Neste ponto, posso mudar para a nova conta de não administrador LDAP. Infelizmente, se enquanto estiver logado como este usuário, eu executar o comando passwd, recebo o seguinte erro:

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

Como posso configurar meu aplicativo openLDAP para que usuários não administradores possam alterar suas próprias senhas?

Responder1

As instruções vinculadas parecem fazer com que você crie um banco de dados OpenLDAP sem controle de acesso, o que basicamente significa gravação e leitura de olcRootDn. (Todos os seus usuários do OpenLDAP podem ler tudo no banco de dados e até despejá-lo se conseguirem descobrir como contornar o limite padrão de 500 leituras). Você vai querer ajustar isso primeiro.

Mínimo viável:

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

informação relacionada