Trouble getting groups through ypldap

2010-10-14 Thread John Danks
I'm attempting to setup OpenLDAP, Samba and ypldap on 4.7. OpenLDAP is
up and running along with Samba, and I've used the smbldap tools to
populate the directory.

I'm having trouble getting the full list of LDAP groups with getent.
At first I ran getent group and didn't see any of the LDAP groups.
Then I noticed that the ypldap.conf example uses basedn
ou=Users,dc=domain,dc=tld, so I changed it to basedn
dc=domain,dc=tld. Now getent group shows only the first of the LDAP
groups:

# getent group
...
nogroup:*:32766
nobody:*:32767
_openldap:*:544
_dbus:*:572
_avahi:*:629
_avahi-autoipd:*:630
_cups:*:541
Domain Admins:*:512:root

I ran the equivalent search that ypldap was doing (based on watching
OpenLDAP in the foreground) and got the full list of groups. So it
looks like something between OpenLDAP and ypldap isn't working quite
right. I looked at the changes to ypldap since 4.7 and there doesn't
seem to be anything relevant.

I'm out of ideas for troubleshooting short of trying a snapshot, which
I'll try later today.

Any ideas where to look next?

Here's my ypldap.conf:

domain pmh.org
interval 30

provide map passwd.byname
provide map passwd.byuid
provide map group.byname
provide map group.bygid

directory ldap.pmh.org {
binddn cn=Manager,dc=pmh,dc=org
bindcred secret
#   basedn ou=Users,dc=pmh,dc=org
basedn dc=pmh,dc=org

passwd filter (objectClass=posixAccount)

attribute name maps to uid
fixed attribute passwd *
attribute uid maps to uidNumber
attribute gid maps to gidNumber
attribute gecos maps to cn
attribute home maps to homeDirectory
fixed attribute shell loginShell
fixed attribute change 0
fixed attribute expire 0
fixed attribute class ldap

group filter (objectClass=posixGroup)

attribute groupname maps to cn
fixed attribute grouppasswd *
attribute groupgid maps to gidNumber
list groupmembers maps to memberUid
}

And dmesg:

OpenBSD 4.7 (GENERIC) #558: Wed Mar 17 20:46:15 MDT 2010
dera...@i386.openbsd.org:/usr/src/sys/arch/i386/compile/GENERIC
cpu0: Intel Pentium III (GenuineIntel 686-class, 128KB L2 cache) 898 MHz
cpu0: FPU,V86,DE,PSE,TSC,MSR,PAE,MCE,CX8,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,MMX,FXS
R,SSE
real mem  = 266694656 (254MB)
avail mem = 249700352 (238MB)
mainbus0 at root
bios0 at mainbus0: AT/286+ BIOS, date 08/23/01, BIOS32 rev. 0 @ 0xfda74, SMBIOS
rev. 2.3 @ 0xf0ff0 (49 entries)
bios0: vendor Intel Corp. version CB81010A.15A.0026.P05.0108230926 date 08/23/
2001
bios0: Gateway E-1600
apm0 at bios0: Power Management spec V1.2
apm0: AC on, battery charge unknown
acpi at bios0 function 0x0 not configured
pcibios0 at bios0: rev 2.1 @ 0xf/0x1
pcibios0: PCI IRQ Routing Table rev 1.0 @ 0xf3370/144 (7 entries)
pcibios0: PCI Interrupt Router at 000:31:0 (Intel 82371FB ISA rev 0x00)
pcibios0: PCI bus #1 is the last bus
bios0: ROM list: 0xc/0xc000 0xcc000/0x1000 0xcd000/0x1000
cpu0 at mainbus0: (uniprocessor)
pci0 at mainbus0 bus 0: configuration mode 1 (bios)
pchb0 at pci0 dev 0 function 0 Intel 82810E Host rev 0x03
vga1 at pci0 dev 1 function 0 Intel 82810E Video rev 0x03
wsdisplay0 at vga1 mux 1: console (80x25, vt100 emulation)
wsdisplay0: screen 1-5 added (80x25, vt100 emulation)
intagp0 at vga1
agp0 at intagp0: aperture at 0xf800, size 0x400
ppb0 at pci0 dev 30 function 0 Intel 82801BA Hub-to-PCI rev 0x02
pci1 at ppb0 bus 1
fxp0 at pci1 dev 8 function 0 Intel 82562 rev 0x01, i82562: irq 5, address 00:
03:47:a3:9b:b8
inphy0 at fxp0 phy 1: i82562ET 10/100 PHY, rev. 0
ichpcib0 at pci0 dev 31 function 0 Intel 82801BA LPC rev 0x02: 24-bit timer at
 3579545Hz
pciide0 at pci0 dev 31 function 1 Intel 82801BA IDE rev 0x02: DMA, channel 0 w
ired to compatibility, channel 1 wired to compatibility
atapiscsi0 at pciide0 channel 0 drive 0
scsibus0 at atapiscsi0: 2 targets
cd0 at scsibus0 targ 0 lun 0: LG, CD-ROM CRD-8483B, 1.06 ATAPI 5/cdrom removab
le
cd0(pciide0:0:0): using PIO mode 4, Ultra-DMA mode 2
wd0 at pciide0 channel 1 drive 0: Maxtor 2F040L0
wd0: 16-sector PIO, LBA, 39205MB, 80293248 sectors
wd0(pciide0:1:0): using PIO mode 4, Ultra-DMA mode 5
uhci0 at pci0 dev 31 function 2 Intel 82801BA USB rev 0x02: irq 10
ichiic0 at pci0 dev 31 function 3 Intel 82801BA SMBus rev 0x02: irq 9
iic0 at ichiic0
admtm0 at iic0 addr 0x2d: adm1025
spdmem0 at iic0 addr 0x50: 256MB SDRAM non-parity PC133CL3
auich0 at pci0 dev 31 function 5 Intel 82801BA AC97 rev 0x02: irq 9, ICH2 AC97
ac97: codec id 0x4352594d (Cirrus Logic CS4201 rev 5)
ac97: codec features 20 bit DAC, 18 bit ADC, Crystal Semi 3D
audio0 at auich0
isa0 at ichpcib0
isadma0 at isa0
com0 at isa0 port 0x3f8/8 irq 4: ns16550a, 16 byte fifo
pckbc0 at isa0 port 0x60/5
pckbd0 at pckbc0 (kbd slot)
pckbc0: using irq 1 for kbd slot
wskbd0 at pckbd0: console keyboard, using wsdisplay0
pcppi0 at isa0 port 0x61
midi0 at pcppi0: PC speaker
spkr0 at pcppi0
lpt0 at isa0 port 0x378/4 irq 7

Re: Trouble getting groups through ypldap

2010-10-14 Thread Nigel Taylor
It could be the groups your missing have no members, which fails to output the
group. You can confirm this my adding a user to one of the groups, and see if
the group is displayed. This following change, rather than skipping output of
the group, outputs group with a null list of members.

Regards

Nigel Taylor

$ cvs -R -q -d /cvs diff -u
Index: ldapclient.c
===
RCS file: /cvs/src/usr.sbin/ypldap/ldapclient.c,v
retrieving revision 1.14
diff -u -r1.14 ldapclient.c
--- ldapclient.c6 Jun 2009 05:02:58 -   1.14
+++ ldapclient.c5 Jul 2009 18:18:35 -
@@ -611,7 +611,7 @@
}
} else if (idm-idm_list  F_LIST(i)) {
if (aldap_match_entry(m, attrs[j++],
ldap_attrs) == -1)
-   goto next_grpentry;
+   continue;
if (ldap_attrs[0] == NULL)
goto next_grpentry;
for (k = 0; k = 0  ldap_attrs[k] != NULL; 
k++) {





On 10/14/10 20:15, John Danks wrote:
 I'm attempting to setup OpenLDAP, Samba and ypldap on 4.7. OpenLDAP is
 up and running along with Samba, and I've used the smbldap tools to
 populate the directory.
 
 I'm having trouble getting the full list of LDAP groups with getent.
 At first I ran getent group and didn't see any of the LDAP groups.
 Then I noticed that the ypldap.conf example uses basedn
 ou=Users,dc=domain,dc=tld, so I changed it to basedn
 dc=domain,dc=tld. Now getent group shows only the first of the LDAP
 groups:
 
 # getent group
 ...
 nogroup:*:32766
 nobody:*:32767
 _openldap:*:544
 _dbus:*:572
 _avahi:*:629
 _avahi-autoipd:*:630
 _cups:*:541
 Domain Admins:*:512:root
 
 I ran the equivalent search that ypldap was doing (based on watching
 OpenLDAP in the foreground) and got the full list of groups. So it
 looks like something between OpenLDAP and ypldap isn't working quite
 right. I looked at the changes to ypldap since 4.7 and there doesn't
 seem to be anything relevant.
 
 I'm out of ideas for troubleshooting short of trying a snapshot, which
 I'll try later today.
 
 Any ideas where to look next?
 
 Here's my ypldap.conf:
 
 domain pmh.org
 interval 30
 
 provide map passwd.byname
 provide map passwd.byuid
 provide map group.byname
 provide map group.bygid
 
 directory ldap.pmh.org {
 binddn cn=Manager,dc=pmh,dc=org
 bindcred secret
 #   basedn ou=Users,dc=pmh,dc=org
 basedn dc=pmh,dc=org
 
 passwd filter (objectClass=posixAccount)
 
 attribute name maps to uid
 fixed attribute passwd *
 attribute uid maps to uidNumber
 attribute gid maps to gidNumber
 attribute gecos maps to cn
 attribute home maps to homeDirectory
 fixed attribute shell loginShell
 fixed attribute change 0
 fixed attribute expire 0
 fixed attribute class ldap
 
 group filter (objectClass=posixGroup)
 
 attribute groupname maps to cn
 fixed attribute grouppasswd *
 attribute groupgid maps to gidNumber
 list groupmembers maps to memberUid
 }
 
 And dmesg:
 
 OpenBSD 4.7 (GENERIC) #558: Wed Mar 17 20:46:15 MDT 2010
 dera...@i386.openbsd.org:/usr/src/sys/arch/i386/compile/GENERIC
 cpu0: Intel Pentium III (GenuineIntel 686-class, 128KB L2 cache) 898 MHz
 cpu0: 
 FPU,V86,DE,PSE,TSC,MSR,PAE,MCE,CX8,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,MMX,FXS
 R,SSE
 real mem  = 266694656 (254MB)
 avail mem = 249700352 (238MB)
 mainbus0 at root
 bios0 at mainbus0: AT/286+ BIOS, date 08/23/01, BIOS32 rev. 0 @ 0xfda74, 
 SMBIOS
 rev. 2.3 @ 0xf0ff0 (49 entries)
 bios0: vendor Intel Corp. version CB81010A.15A.0026.P05.0108230926 date 
 08/23/
 2001
 bios0: Gateway E-1600
 apm0 at bios0: Power Management spec V1.2
 apm0: AC on, battery charge unknown
 acpi at bios0 function 0x0 not configured
 pcibios0 at bios0: rev 2.1 @ 0xf/0x1
 pcibios0: PCI IRQ Routing Table rev 1.0 @ 0xf3370/144 (7 entries)
 pcibios0: PCI Interrupt Router at 000:31:0 (Intel 82371FB ISA rev 0x00)
 pcibios0: PCI bus #1 is the last bus
 bios0: ROM list: 0xc/0xc000 0xcc000/0x1000 0xcd000/0x1000
 cpu0 at mainbus0: (uniprocessor)
 pci0 at mainbus0 bus 0: configuration mode 1 (bios)
 pchb0 at pci0 dev 0 function 0 Intel 82810E Host rev 0x03
 vga1 at pci0 dev 1 function 0 Intel 82810E Video rev 0x03
 wsdisplay0 at vga1 mux 1: console (80x25, vt100 emulation)
 wsdisplay0: screen 1-5 added (80x25, vt100 emulation)
 intagp0 at vga1
 agp0 at intagp0: aperture at 0xf800, size 0x400
 ppb0 at pci0 dev 30 function 0 Intel 82801BA Hub-to-PCI rev 0x02
 pci1 at ppb0 bus 1
 fxp0 at pci1 dev 8 function 0 Intel 82562 rev 0x01, i82562: irq 5, address 
 00:
 03:47:a3:9b:b8
 inphy0 at fxp0 phy 1: i82562ET 10/100 PHY, rev. 0
 ichpcib0 at pci0 dev 31 function 0 Intel 82801BA LPC rev 0x02: 

Re: Trouble getting groups through ypldap

2010-10-14 Thread John Danks
On Thu, Oct 14, 2010 at 2:38 PM, Nigel Taylor
njtay...@asterisk.demon.co.uk wrote:

 It could be the groups your missing have no members, which fails to output the
 group. You can confirm this my adding a user to one of the groups, and see if
 the group is displayed. This following change, rather than skipping output of
 the group, outputs group with a null list of members.

Thanks, that was the problem. Adding a member to the groups made them
show up through getent.