Samba 2.1 pre-release okay - RedHat 5.2/glibc is my problem

Bill Nugent whn at topelo.lopi.com
Tue Feb 2 20:50:36 GMT 1999


Andrew,

I've been at this too long and I'm not seeing straight.  My password 
entry was defective:

bonkers$:4999:5000:bonkers to use NT:/home/samba/Machines:/bin/false

No password field and this is why it was being discarded.  Should have 
been:

bonkers$:x:4999:5000:bonkers to use NT:/home/samba/Machines:/bin/false

Well...I still have the segmentation fault to figure out...I hope it some 
other stupid mistake I made.	Feeling dumber every day!  ;-)

	Bill

On Wednesday, Feb 3 1999 at 00:20:42, Bill Nugent wrote:

>Andrew,
>
>I've tried that already.  :-(  The source code for smbpasswd strips off 
>any '$' on the end and then appends one when run '-m' just to be sure 
(at
>about line 378 of utils/smbpasswd.c).
>
>The problem is with glibc 2.0.7 runtime library - it skips over 
usernames
>that have a '$' in them (I have not exhaustively tried all permutations 
>but on the end and in the middle are ignored).
>
>Look at the little C program I enclosed in the original posting with the 
>two test runs at the end and you will see that username 'bonker$' is 
>skipped over.  There is a copy of that posting at the bottom of this 
>email.
>
>After I sent the email I wrote a variation using getpwent() and it 
>skipped it as well.
>
>My next question to the list is how hard would it be for me to kludge 
>around this either by using a different character?  I feel writing a 
>custom function my_getpwnam() function is a loosing battle because PAM, 
>etc. all use run-time library.
>
>Thank you!
>
>	Bill
>
>On Monday, Feb 1 1999 at 20:09:35, Andrew Perrin - Demography wrote:
>
>>unless I'm misunderstanding your message, I think your problem is 
simple:
>>the -m flag on smbpasswd adds the $ for you; if your machine is named
>>BONKERS and its associated /etc/passwd entry is for BONKERS$, you should
>>just do smbpasswd -a -m bonkers .
>>
>>Hope this helps-
>>Andy
>>
>>---------------------------------------------------------------------
>>Andrew J. Perrin - aperrin at demog.berkeley.edu - NT/Unix Admin/Support
>>Department of Demography    -    University of California at Berkeley
>>2232 Piedmont Avenue #2120  -    Berkeley, California, 94720-2120 USA
>>http://demog.berkeley.edu/~aperrin --------------------------SEIU1199
>>
>>On Tue, 2 Feb 1999, Bill Nugent wrote:
>>
>>> Howdy,
>>> 
>>> I reported earlier that I could not get smbpasswd to work properly - 
>>> "smbpasswd -m 'bonkers$'" is one example.  I think I may have found a 
>>> problem - getpwnam() doesn't work when '$' is the last character of 
>the
>>> name.  I'm running RedHat Linux 5.2 with glibc-2.0.7-29 and my 
>>> /etc/passwd (and /etc/shadow) have an entry for bonkers$:
>>> 
>>> bonkers$:4999:5000:bonkers to use NT:/home/samba/Machines:/bin/false
>>> 
>>> My test program:
>>> 
>>> $ cat test.c
>>> #include <stdio.h>
>>> #include <pwd.h>
>>> #include <sys/types.h>
>>> 
>>> main(int argc, char *argv[])
>>> {
>>>   struct passwd *p = getpwnam(argv[1]);
>>> 
>>>   printf("%s = %x\n", argv[1], p);
>>> }
>>> 
ser joe - an entry is returned
>>> joe = 400ae2d8
>>> $ ./test 'bonkers$'	# And this is broken
>>> bonkers$ = 0
>>> 
>>> I tried escaping the dollar sign in case there was an RE 
involved...no
>>> such luck.
>>> 
>>> I submitted a bug report to RedHat.  I took a look at the glibc 
source
>>> and it is appears to be non-trivial (multiple levels of macros) and I 
>do
>>> not have the cycles to spare looking into this problem as well...sigh.
>>> 
>>> 	Bill
>>> 
>>
>
>
>





More information about the samba-ntdom mailing list