Escreva para stdin que pede senha
-
21-12-2019 - |
Pergunta
Estou trabalhando em um script bash para configurar o openldap e adicionar o script ldif com usuários e grupos.
Como posso escrever a senha do script bash?
Este é o script que executo quando pede senha:
ldapadd -h localhost -D "cn=admin,dc=sysadmin1,dc=hioa,dc=no" -W -x -f /etc/ldap/base.ldif
EDITAR:
Eu tentei isso e criei um arquivo passwd.txt com a senha:
ldapadd -h localhost -D "cn=admin,dc=sysadmin1,dc=hioa,dc=no" -W -x -y'passwd.txt' -f /etc/ldap/base.ldif
Mas recebe este erro:
Warning: Password file passwd.txt is publicly readable/writeable
ldap_bind: Invalid credentials (49)
Solução
cara ldapadd.
-W
Prompt for simple authentication. This is used instead of specifying the password on the command line.
-w passwd
Use passwd as the password for simple authentication.
-y passwdfile
Use complete contents of passwdfile as the password for simple authentication.
Parece que você está procurando uma opção de -w
ou -y
, não -W
Outras dicas
Existem duas possibilidades:
ldapadd
lê a senha da entrada padrão.ldapadd
lê a senha diretamente do TTY atual.
No primeiro caso basta usar algo assim echo 'MySecretPassword' | ldapadd -h localhost -D "cn=admin,dc=sysadmin1,dc=hioa,dc=no" -W -x -f /etc/ldap/base.ldif
.O segundo é mais complicado porque você precisa de uma ferramenta como esperar.Verifique se o redirecionamento simples funciona primeiro.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow