[Samba] FreeBSD: Changing UNIX password - Password Chat?

Jon Theil Nielsen jontheil at gmail.com
Thu Feb 14 01:35:09 GMT 2008


2008/2/14, Fabiano Caixeta Duarte <fcd.listas at gmail.com>:
> Jon Theil Nielsen escreveu:
> > 2008/2/13, Edmundo Valle Neto <edmundo.valle at terra.com.br>:
> >> Jon Theil Nielsen escreveu:
> >>> I can't get my Samba PDC (FreeBSD 7,0-BETA3) changing UNIX passwords
> >>> from Windows clients (Ctrl-Alt-Del).
> >>> I now have the password chat debug active and I have loglevel 100.
> >>> I am not certain about the syntax in the password chat. But if I from
> >>> a console try to change the password of a given user (here testuser1),
> >>> I see these lines:
> >>>
> >>> mflserver3# /usr/bin/passwd testuser1
> >>> Changing local password for testuser1
> >>> New Password: (entering the password)
> >>> Retype New Password: (entering it again)
> >>>
> >>> >From that i guess the expression in the chat would be:
> >>> *Changing*local*password*for* %u\n *New*Password* %n\n
> >>> *Retype*New*Password* %n\n
> >>>
> >> No.
> >>
> >> %u is the username and %n is the newpassword.
> >>
> >> "What*to*expect"
> >> %n\n (send the password and a new line)
> >> "What*to*expect*then"
> >> %n\n (send the password again and a new line)
> >>
> >>
> >>> Selected parts of the log shows:
> >>>
> >>> [2008/02/13 17:47:07, 100] smbd/chgpasswd.c:expect(279)
> >>>   expect: expected [*Changing*local*password*for*] received [Changing
> >>> local password for testuser1
> >>>   New Password:] match yes
> >>>
> >> It matched the two first lines stopping at (New Password:) as you have a
> >> * at the end.
> >
> > Okay, I shoulden't have that trailing "*"?
> >
> >> And wait.
> >>
> >>> [2008/02/13 17:47:07, 10] smbd/chgpasswd.c:expect(290)
> >>>   expect: returning True
> >>> [2008/02/13 17:47:07, 100] smbd/chgpasswd.c:expect(242)
> >>>   expect: sending [testuser1
> >>>   ]
> >>>
> >> You sent an username to the New password: prompt???
> >
> > It wasn't my intention, but I can see that's what happened.
>
> You seem to have three macros in your passwd chat: %u %u and %n.
> Instead, you need %u %n %n.
>
> See?
>
>
> >
> >>> [2008/02/13 17:47:07, 10] lib/util_sock.c:read_socket_with_timeout(476)
> >>>   read_socket_with_timeout: timeout read. select timed out.
> >>> [2008/02/13 17:47:07, 100] smbd/chgpasswd.c:expect(279)
> >>>   expect: expected [*New*Password*] received [
> >>>   Retype New Password:] match yes
> >>>
> >> It matched the second line stopping at (Retype New Password:)
> >> And wait.
> >>
> >>> [2008/02/13 17:47:07, 10] smbd/chgpasswd.c:expect(290)
> >>>   expect: returning True
> >>> [2008/02/13 17:47:07, 100] smbd/chgpasswd.c:expect(242)
> >>>   expect: sending [VerySecret
> >>>   ]
> >>>
> >> You sent a "VerySecret" password (that obviously will not match the first)
> >
> > So, that part seemed to work. But obviously not compared to what happened above.
> >
> >>> [2008/02/13 17:47:10, 10] lib/util_sock.c:read_socket_with_timeout(476)
> >>>   read_socket_with_timeout: timeout read. select timed out.
> >>> [2008/02/13 17:47:10, 100] smbd/chgpasswd.c:expect(279)
> >>>   expect: expected [*Retype*New*Password*] received [
> >>>   Mismatch; try again, EOF to quit.
> >>>   New Password:] match no
> >
> > And again something is completely wrong, I see.
> >
> > As I said, I am far from confident with the syntax/mecanism here. So I
> > would really appreciate some more explicit help. I have tried to
> > modify the chat by removing the trailing "*" or by putting the
> > expressions into double quotes - but with no luck.
> > Again, what is going on in the console is exactely what I wrote above.
> > What would then be tbe correct chat?
> >
> > Regards,
> > Jon Theil Nielsen
>
> Look for my answer in the middle of the above post ;)

I give up. My chat was:

*Changing*local*password*for* %u\n *New*Password* %n\n
*Retype*New*Password* %n\n

As I see it, three macro substitutions %u, %n and %n

You said above:

> "What*to*expect"
> %n\n (send the password and a new line)
> "What*to*expect*then"
> %n\n (send the password again and a new line)

Do I not need to include the output from the system (e.g. "Changing
local password....")?
I feel really stupid. I have just tried to adjust the example from the
man page to the FreeBSD reality. Maybe I should just sleep on it and
try again with some other combinations...

But thanks, anyway..!

Regards,
Jon Theil Nielsen


More information about the samba mailing list