web-dev-qa-db-ja.com

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

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

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オプションを指定してコマンドを実行し、プロンプトにパスワードを入力すると、コマンドは正常に実行されますが、スクリプトを作成するために何らかの方法でパスワードを保存します。

18
Paolo Tedesco

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

echo -n ThisIsaBadPassword > .pass.txt

[〜#〜] update [〜#〜]:含まれる '-n')

23
sysadmin1138

改行/改行であると想定して、次のことを試してください。

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

次に、.pass2.txtファイルを使用します。 _cat -vE_を使用すると、常に改行と改行を確認でき、それぞれ$および^ Mとして表示されます。

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

1
Kyle Brandt

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

Chmod 600 pass.txtが必要になる場合があります

0
hfranco