6

問題のユーザーは Windows マシンにアクセスできず、そのままにしておきたいため、現在、Linux の LDAP 経由で Active Directory Envoirenment のパスワードを変更しようとしています。パスワードを変更するために、私は現在、ldapmodify を使用してそうする方法を考え出しています。さまざまなサイト/フォーラム/ニュースグループで多くのことを読んだ後、私は以前よりもはるかに混乱しています

ただし、次のコマンドを試してください。

ldapmodify -f ldif.example -H ldaps://lab01-dc01.example.com -D 'CN=test,CN=users,DC=lab01,DC=example,DC=com' -x -W

ldif.example の内容:

dn: CN=test,CN=Users,DC=lab01,DC=example,DC=com
changetype: modify
delete: unicodePwd
unicodePwd:: V3VQdXV1STEyLg==
-
add: unicodePwd
unicodePwd:: QmxhVVVraTEyLg==
-

(心配しないでください - これらのパスワードはどこでも使用されておらず、本番環境ではありません)

今-コマンドを実行するたびに、次のエラーが発生します。

modifying entry CN=test,CN=Users,DC=lab01,DC=example,DC=com"
ldapmodify: Constraint violation (19)
 additional info: 0000216C: AtrErr: DSID-03190EB0, #1:
 0: 0000216C: DSID-03190EB0, problem 1005 (CONSTRAINT_ATT_TYPE), data 0, Att 9005a (unicodePwd)

さて、このエラーの理由を読んだ後、パスワードの形式が正しくないか、パスワードポリシーで使用したパスワードが許可されていないことがわかりました。ポリシーを何度も確認しましたが、新しいパスワードはすべての基準でポリシーに明確に準拠しています。Windows マシンを使用してパスワードを設定すると、それもうまく機能します (もちろん、以前のパスワードに変更することはポリシーによって許可されていないため、後で「oldpassword」と「newpassword」を変更しました)。「-W」オプションをldapmodifyに渡した後に入力したパスワードも間違いなく正しいです。そうでない場合、ldapmodifyによって吐き出されるエラーは、制約違反ではなく無効な資格情報を使用したことです。だから - 私が考えることができる唯一の理由は、確かに間違ったフォーマットのパスワードです - しかし、私はできます」

誰が何が起こっているのか考えていますか? 誰かが私を正しい方向に押し進めることができますか?

助けていただければ幸いです。事前に感謝します。

編集:私を悩ませているもの:ベースでエンコードされた文字列をbase64で実行すると、「無効な入力」と表示され続けます。さて-先に進み、Linuxマシンでbase64を使用してパスワードを再コーディングしました-しかし、生成された文字列をデコード機能で再度実行すると、base64は「無効な入力」と言い続けます...文字列はわずかですがWindows-base64 でエンコードされた文字列と Linux でエンコードされた文字列の間で変更されました。しかし、base64 は、何を入力しても「無効な入力」とだけ表示されます。

Edit2: 気にしない - 関数の目的を読んで、パスワードにドットと感嘆符が含まれているためにこのエラーがスローされることがわかりました。

4

5 に答える 5

3

今後の参考のために、誰かが同様の問題に遭遇した場合: 簡単な解決策は? ldap の代わりに smbpasswd を使用してパスワードを変更するだけで、問題なく動作します。私はそれを前に考えていなかったことに本当に不機嫌です:D

ただし、samba (CentOS を使用) を使用して Active Directory のパスワードを変更する方法:

~#yum install samba
~#smbpasswd -r domaincontroller.example.com -U testuser1
Old SMB password:
New SMB password:
Retype new SMB password:
Password changed for user testuser1 on domaincontroller.example.com

その後、新しいパスワードを使用してログインできます。それくらい簡単です。

于 2012-04-04T07:54:28.383 に答える
2

制約エラーは、たとえば、過去 24 個のパスワードを使用できないなどのポリシーに準拠していない古いパスワードを使用していることを意味します。今後の参考のために: AD サーバーに接続します (バインド): 1. 管理者として: 全員のパスワードを変更およびリセットできます。変更とリセットには違いがあります。変更 = AD はパスワード ポリシーを適用します。リセット = しません。2. ユーザーとして: パスワードを変更することはできますが、リセットすることはできません。変更 = AD はパスワード ポリシーを適用します。少し遅くなりましたが、お役に立てば幸いです!

于 2015-03-31T17:50:47.577 に答える
1

yum install sambaSamba バージョン 3.6.9 から smbpasswd プログラムをインストールしたため、うまくいきませんでした。

うまくいったのはyum install samba4-client. これにより、Samba 4 用の smbpasswd プログラムがインストールされます。このバージョンの smbpasswd は、実際には Windows Server 2008 R2 ドメイン コントローラーでパスワードを変更できます。Sambaサーバーはクライアントユーティリティだけで必要ないため、samba4-clientを使用しました。

smbpasswd コマンドの構文は同じです。

smbpasswd -r domaincontroller.example.com -U testuser1    

お役に立てれば。

于 2013-07-23T14:49:56.187 に答える
1

別のユーザーから既存の有効なパスワードを取得し、それを ldif に含めてみるのはどうですか?

これにより、パスワードが機能していることを確認できます。

次に、ldif で代わりに delete/add を使用しないでください。おそらく、削除によってオブジェクトクラス違反エラーが発生するでしょう。

3 番目に、印刷できない文字または特殊文字が含まれている場合にのみ、属性を base64 エンコードする必要があります。ldif ファイルの末尾に空の行があります。

dn: CN=test,CN=Users,DC=lab01,DC=example,DC=com
changetype: modify
replace: unicodePwd
unicodePwd: BlaUUki12.

よろしく、

于 2012-04-04T07:04:44.290 に答える