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

Reply via email to