اكتب إلى stdin الذي يطلب كلمة المرور
-
21-12-2019 - |
سؤال
أنا أعمل على برنامج نصي bash لتكوين openldap وإضافة برنامج ldif النصي مع المستخدمين والمجموعات.
كيف يمكنني كتابة كلمة المرور من البرنامج النصي bash؟
هذا هو البرنامج النصي الذي أقوم بتشغيله عندما يطلب كلمة المرور:
ldapadd -h localhost -D "cn=admin,dc=sysadmin1,dc=hioa,dc=no" -W -x -f /etc/ldap/base.ldif
يحرر:
لقد جربت ذلك وأنشأت ملف passwd.txt بكلمة المرور:
ldapadd -h localhost -D "cn=admin,dc=sysadmin1,dc=hioa,dc=no" -W -x -y'passwd.txt' -f /etc/ldap/base.ldif
ولكن يحصل على هذا الخطأ:
Warning: Password file passwd.txt is publicly readable/writeable
ldap_bind: Invalid credentials (49)
المحلول
رجل 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.
لذلك يبدو أنك تبحث عن خيار -w
أو -y
, ، لا -W
نصائح أخرى
هناك احتمالان:
ldapadd
يقرأ كلمة المرور من الإدخال القياسي.ldapadd
يقرأ كلمة المرور مباشرة من TTY الحالي.
في الحالة الأولى يكفي استخدام شيء من هذا القبيل echo 'MySecretPassword' | ldapadd -h localhost -D "cn=admin,dc=sysadmin1,dc=hioa,dc=no" -W -x -f /etc/ldap/base.ldif
.والثاني أكثر تعقيدًا لأنك تحتاج إلى أداة مثل يتوقع.تحقق مما إذا كانت إعادة التوجيه البسيطة تعمل أولاً.
لا تنتمي إلى StackOverflow