Écrire à stdin qui demande le mot de passe
-
21-12-2019 - |
Question
Je suis en train de travailler sur un script bash pour configurer openldap et ajouter ldif script avec les utilisateurs et les groupes.
Comment puis-je écrire le mot de passe dans le script bash ?
C'est le script que j'courir quand il vous demande le mot de passe:
ldapadd -h localhost -D "cn=admin,dc=sysadmin1,dc=hioa,dc=no" -W -x -f /etc/ldap/base.ldif
EDIT:
J'ai essayé et créé un passwd.txt fichier avec le mot de passe:
ldapadd -h localhost -D "cn=admin,dc=sysadmin1,dc=hioa,dc=no" -W -x -y'passwd.txt' -f /etc/ldap/base.ldif
Mais on obtient cette erreur:
Warning: Password file passwd.txt is publicly readable/writeable
ldap_bind: Invalid credentials (49)
La solution
homme 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.
SE SE SE SE SE SE SE QUE VOUS RECHERCHEZ UNE OPTION DE -w
OU -y
, NON -W
Autres conseils
Il y a deux possibilités:
ldapadd
lit le mot de passe à partir de l'entrée standard.ldapadd
lit le mot de passe directement depuis le TERMINAL.
Dans le premier cas, il suffit d'utiliser quelque chose comme ceci echo 'MySecretPassword' | ldapadd -h localhost -D "cn=admin,dc=sysadmin1,dc=hioa,dc=no" -W -x -f /etc/ldap/base.ldif
.Le deuxième est plus compliqué parce que vous avez besoin d'un outil comme attendre.Vérifier si la simple redirection fonctionne bien.