ldapsearchパスワードファイル形式


18

オプションのldapsearch使用にパスワードを渡すにはどうすればよいです-y <password file>か?
パスワードをパスワードファイルにプレーンテキストで書き込むと、次のエラーが表示されます。

ldap_bind: Invalid credentials (49)
    additional info: 80090308: LdapErr: DSID-0C0903AA, comment: AcceptSecurityContext error, data 52e, v1772

-w <password>オプションを使用しても同じことが起こります。

編集
私が実行しているコマンドは

ldapsearch -x -D <my dn> -y .pass.txt -h server.x.x -b "dc=x,dc=y" "cn=*"

ファイル.pass.txtにパスワードがプレーンテキストで含まれている場所。DNとパスワードの両方が正しいです。オプションを指定してコマンドを実行-Wし、プロンプトにパスワードを入力すると、コマンドは正常に実行されますが、何らかの方法でパスワードを保存してスクリプトを作成したいと思います。


どのような「パスワードファイル」を使用していますか?入力している完全なコマンドを表示することもできます。正しいバインド資格情報を使用していますか?
ソールファルド

回答:


22

ldapsearchはファイルの内容全体をパスワードに使用することに注意してください。これは、改行文字が存在する場合、それを含むことを意味します。これが実際に問題かどうかを確認するには、ファイルを作成せずに作成してみてください。

echo -n ThisIsaBadPassword > .pass.txt

更新:「-n」を含む)


1
私はちょうどことを試みたが、私は...まったく同じエラーが出る
パオロテデスコ

2
いいえ、できません。あなたは必要とするecho -nか、printf改行を避けるために。
user1686

echo -nがうまくいきました!ご協力ありがとうございます。
パオロテデスコ

grawityのコメントのフォローアップでは、echo -nは完全に機能します。例:echo -n "secretpassword"> /etc/ldapscripts/ldapscripts.passwd
Ned W.

これにより迷惑な問題が解決しました、ありがとう。sedただし、既存のファイルの末尾を削除するだけでした。
wirefox

1

それが復帰改行であると仮定すると、以下を試してください:

cat .pass.txt | tr -d '\n\r' > .pass2.txt

次に、.pass2.txtファイルを使用します。いつでも改行と改行を確認でき、cat -vEそれぞれ$と^ Mとして表示されます。

-y <(cat .pass.txt | tr -d '\n\r')ldapsearchコマンドで直接行うこともできます。


0

ldapsearch -x -D cn=Manager,dc=domain,dc=com -y pass.txt -H ldap://ldap.domain.com -b dc=domain,dc=com

600 mod pass.txtをchmodする必要があります


-2

パスワードを実際のファイルにダンプする必要はありません。改行を防ぐために-nフラグを付けてエコーし、次のようにSTDINファイル記述子(/ dev / fd / 0)から読み取ります。

echo -n 'mypassword' | ldapsearch -x -D <my dn> -y /dev/fd/0 -h server.x.x -b "dc=x,dc=y" "cn=*"

このアプローチの問題は、シェル履歴とPSがパスワードを発見することになります。
cgseller

1
要点。今は2018年半ばです。私は自分の過ちから学んだ。2014年の大失敗を真剣に受け止めないでください。ありがとうございました。:)
ブライアンショーター
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.