On 06/07/09 15:08, Victor Duchovni wrote: > On Mon, Jul 06, 2009 at 08:45:15AM +1000, paul sorenson wrote: > >>> The tests must be done as a non-root user to make sure that file >>> permissions don't restrict getpwnam(3) to the super-user. >>> >> # user with ldap entry only: >> [...@homer domestic]$ (getent passwd bells; postmap -q bells >> unix:passwd.byname) | sort | uniq -c | awk '{print $1}' >> 1 > > If getent(1) is returning results that are not found via getpwnam(3), > your C-library or nsswitch are broken. Trace the system calls made by > "postmap -q" and "getent" and see if anything interesting turns up.
getent returns identical results to getpwnam(), I wrote a short program to test this. [...@homer postfix]$ ./getpwname fields from getpwnam("pms"): pms:x:500:500:paul sorenson:/home/pms:/bin/bash fields from getpwnam("bells"): bells:x:503:503:Helen Sorenson:/home/bells:/bin/bash [...@homer postfix]$ getent passwd pms pms:x:500:500:paul sorenson:/home/pms:/bin/bash [...@homer postfix]$ getent passwd bells bells:x:503:503:Helen Sorenson:/home/bells:/bin/bash > > Is LANG set to any particularly unusual value? Have you tried: > > LANG=C postmap -q bells unix:passwd.byname [...@homer postfix]$ echo $LANG en_AU.UTF-8 [...@homer postfix]$ LANG=C postmap -q bells unix:passwd.byname (no output) >> Any tips on how to dig deeper would be appreciated. Would it be >> premature to create a bug report for this? > > This is a non-Postfix problem, start with a question on the support > forum for your O/S. Thanks for your help - the problem is solved. Tracing through postmap, libnss_ldap.so was not found. Closer inspection revealed that this was a 32 bit postfix package installed on a 64 bit system so it didn't look in /usr/lib64. I went back to yum and it seems that the 64 bit rpm is missing from the repository. I found one on rpmfind.net, installed it and badabing. I will let the fedora guys know. cheers