1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
|
LDAP NAMESERVICE SWITCH LIBRARY
===============================
This is the nss_ldap library, an LDAP module for the Solaris Nameservice
Switch (NSS), the GNU libc NSS, and the ISC BIND IRS (used on BSDI
and IRS).
The LDAP schema used is described in RFC 2307
Insert this:
passwd: files nis ldap
group: files nis ldap
or something similar in /etc/nsswitch.conf.
The source code is distributed under the GNU General Library Public Licence
(see COPYING.LIB).
Platforms this has been built under:
o Linux 2.x
o Solaris 2.4, 2.6, 7, 8
o FreeBSD BIND 8.x (not useful unless you recompile libc)
o AIX 4.3.3 with IRS
If you are willing to use an older, and possibly buggy, version
of nss_ldap, you *might* find patches to get it to work with the
"real" FreeBSD nsswitch at http://www.nectar.com/freebsd/nsswitch.
To install:
% ./configure
% make
% make install
NB: you need to use GNU make! (often called gmake or gnumake)
1. Installation
---------------
You need to ensure libnss_ldap.so.1 (or nss_ldap.so.1, for Solaris) is in
/usr/lib.
2. Building shared LDAP client libraries
----------------------------------------
You can build a position independent LDAP client library by compiling
-fPIC and linking with -shared, or downloading the Mozilla or Netscape
LDAP SDKs. Note that OpenLDAP only appears to build shared libraries
on some platforms (apparently not Solaris?). To build these, configure
with --enable-shared.
Q: Using the Netscape LDAP library with pam_ldap on Solaris 8
- aka Solaris 2.8 - fails to link properly! David Begley writes:
There are two releases of the Netscape LDAP library, one marked
for Solaris 8 and the other marked for Solaris 2.6 - the additional
catch is that the Solaris 8 library is a 64-bit library (this is marked
on Netscape's site) whilst the other is a 32-bit library.
It doesn't matter if you have a 64-bit UltraSPARC processor running
the 64-bit Solaris kernel, if your compiler only works with 32-bit
objects then it won't successfully link the 64-bit Solaris 8
Netscape LDAP library.
GCC (up to version 2.95.2) does not work properly with 64-bit objects
under Solaris, so just use the Solaris 2.6 (32-bit) Netscape LDAP
library and everything should be fine.
Q: Can I use a third-party client LDAP library (such as Netscape's)
on Solaris 7? David Begley writes:
Yes, but if you have the Solaris 7 LDAP library installed (package
SUNWlldap or SUNWldapx) configure will find it before the third-party
library - in this case, you can't rely on the auto-lib-type detection of
configure and must use the "--with-ldap-lib=" parameter.
Q: Why does linking fail on Solaris 2.6 (complaining about
relocations remaining against libcrypt)? David Begley
writes:
In short, the problem is that GCC is looking for a shared libcrypt
(in response to the "--shared" parameter) which doesn't exist on
Solaris 2.6 (but does on Solaris 7). The fix is quite simple, use
"-G" instead of "--shared" (could this be a GCC bug?). This change
should already be included in newer versions of pam_ldap.
It doesn't look like libcrypt is even needed if you're using the
Netscape LDAP client library (maybe it's required for OpenLDAP?).
Scott M. Stone <sstone@foo3.com> writes:
Your openldap libs *and* your SSL/RSAREF libs must be DYNAMIC LIBRARIES
or neither nss_ldap nor pam_ldap will work.
3. glibc 2.0 compatibility
--------------------------
Current versions of the nss_ldap library are designed to work with
glibc 2.1, not glibc 2.0. They _may_ work with glibc 2.0. YMMV.
4. RFC2307BIS
-------------
Compiling with -DRFC2307BIS adds rfc2307bis support, which at the
moment just gets you support for groups with distinguished name
members (instead of login names). A posixGroup can thus have the
both memberUid and uniqueMember attributes.
5. Building under FreeBSD
-------------------------
Here's what I do to build it under FreeBSD. You will need to
link it into libbind.a for it actually to be useful.
CPPFLAGS="-I/usr/local/include -I/usr/local/include/bind -DPIC"
export CPPFLAGS
CFLAGS=$CPPFLAGS # this is weird
export CFLAGS
LDFLAGS="-L/usr/local/lib"
LIBS="-lbind_r -lgnuregex -lsasl -lkrb"
export LDFLAGS LIBS
./configure
make
6. Solaris, shadowAccount
-------------------------
Joerg Paysen notes:
> I think its extremly important that you have a
> /etc/shadow file so that an ObjectClass shadowAccount
> will be created in the ldap database. My experience is
> that without shadowAccount nss_ldap does not work on
> solaris!!
7. Secret file
--------------
If using /etc/ldap.secret, it must have a newline at the end
of the secret.
8. Mailing lists
----------------
To discuss nss_ldap and related technologies, you may
subscribe to the following mailing lists:
<URL:mailto:nssldap-request@padl.com>
and
<URL:mailto:ldap-nis-request@padl.com>
Send an electronic mail message with "subscribe" in the
message body to join the list.
9. Commercial support
---------------------
Note that PADL now offer commercial support on a
per-incident basis.
To request a support incident, send email to: nssldap-support@padl.com
--
PADL Software Pty Ltd
nssldap-support@padl.com
http://www.padl.com/
***********************************************************
**** README.SFU *******************************************
***********************************************************
*******************************************************************
nss_ldap-AD-pwdgrp
This file describes the modifications that were made to, and the
build process of, the nss_ldap-150 source to allow passwd and
group info to be retrieved from a Windows 2000 Active Directory.
Modified by: djflux (Andrew Rechenberg) - dj_flux@yahoo.com
Date: 3 May 2001
URL: http://w3.one.net/~djflux/nss_ldap-AD.shtml
*******************************************************************
*** ***
*** IMPORTANT!!! ***
*** ***
-- One MUST have Microsoft Server for NIS from Microsoft Services
for UNIX 2.0 installed on a Windows 2000 Server Domain Controller
in order for this modified module to operate correctly. See the
URL below for more info about SFU 2.0:
http://www.microsoft.com/windows2000/sfu
-- One must also have the LDAP devel libraries installed on the machine
in order to properly build this module. The proper headers and
libraries can be found in the openldap-devel package.
From: "Rechenberg, Andrew" <arechenberg@shermfin.com>
Subject: RE: [nssldap] Can not get nss_ldap to work, can anyone please hel p me?
To: "'Allister Maguire'" <amaguire@actonz.com>, nssldap@padl.com
Date: Thu, 24 Jan 2002 09:28:36 -0500
The README.SFU is slightly little out of date and off topic now. I
originally wrote README.SFU when I modified nss_ldap and Luke Howard
integrated the patch into nss_ldap-150 I believe as a configure option.
There is now the ability to do schema mapping in nss_ldap and change which
attributes are used for LDAP lookups. You have to use the following
configure option:
./configure --enable-schema-mapping [REST_OF_YOUR_OPTIONS_HERE]
Once nss_ldap is compiled then you edit your ldap.conf file and uncomment
the attribute mapping under the MSSFU section (use your favorite text editor
and search for MSSFU and you should find it). Once you do that, and you
modify your nsswitch.conf, you should be off and running.
Let me know if you need anymore help.
Regards,
Andy.
*
*** Test systems specifications ***
*
This module has been tested and works with the following operating
system versions:
RedHat Linux 7.1, kernel 2.4.2-2, against Win2000 Server SP1 mixed-mode
RedHat Linux 6.2, kernel 2.2.17 (smp, custom), Win2000 Server SP1 mixed mode
RedHat Linux 6.1, kernel 2.2.17 (smp, custom), Win2000 Server SP1 mixed mode
The module should compile work with other *NIX/*BSD OS's, but your mileage
may vary.
I believe there is a coding difference in certain applications between Red
Hat 6.1, and versions 6.2 and greater. When testing the modified module I
used 'id [USERNAME]' to make sure that the correct information was being
retrieved from the AD. In Red Hat versions 6.2 or greater (7.0 not tested,
but it should be the same), 'id [USERNAME]' would only return UID, and primary
GID. If [USERNAME] was logged in interactively and ran 'id' the command showed
UID, primary GID, and all other group memberships.
However, when running 'id [USERNAME]' in Red Hat 6.1, the command returned a
"Segmentation Fault." If the user is logged in interactively on 6.1, all of
the correct information is still retrieved.
I am going to check into this issue, but the module should still behave correctly
under 6.1. Let me know if you find out anything different.
*
*** What was modified ***
*
There is very little to modify in order to retrieve passwd and group
information from a Windows 2000 Active Directory.
[Ed note: the patches are incorporated, so all you need to do is
run ./configure --enable-mssfu-schema]
Supplied in the ./admods directory is the context diff of ldap-schema.h.
This file shows the attributes that needed to be modified in order to
use nss_ldap for user and group information on a Linux machine. Besides
a slight modification of the Makefile, this is the only file that needs
to be changed.
Below are the lines that need to be modified in the Makefile. Just make
the lines in your Makefile similar to the ones below.
nss_ldap_so_LDFLAGS = -shared -L/lib/libdb.so
LDFLAGS = -L/lib/libdb.so
NSS_LDAP_LDFLAGS = -enss_ldap_initialize -lsys -lcsys -lc -ldb
LIBS = -lldap -llber -lnsl -lresolv -ldb
The "-ldb" in NSS_LDAP_LDFLAGS and LIBS may not be necessary, but I
wasn't about the change anything in the module after I had it working :)
Also, the -L switch should have the path to your libdb.so (e.g if libdb.so.3
is in /usr/local/lib then your LDFLAGS should have -L/usr/local/lib/libdb.so.3).
*
*** Building it ***
*
This is the procedure that was used to build this module. The ldap-schema.h
file include in this source tree has already been modified to work with
SFUed Active Directory, so you do not need to modify that file. The
ldap-schema.diff file has been provided for illustration purposes so one
knows what attributes have been modified.
1) make distclean
2) ./configure --with-ldap=openldap --libdir=/lib --enable-mssfu-schema
3) Modify Makefile so that the lines in Makefile are similar to those listed
above.
4) make install
That's it!
*
*** /etc/ldap.conf ***
*
Modify your /etc/ldap.conf file to match your Active Directory/LDAP
configuration. Unless you have changed your AD from the stock install,
you should have the following RFC2307bis naming contexts in your
ldap.conf file:
nss_base_passwd cn=Users,dc=yourdomain,dc=com?one
nss_base_group cn=Users,dc=yourdomain,dc=com?one
With the stock Active Directory, all users and groups are located in the
cn=users container underneath your domain. If your AD has been modified,
then modify the naming contexts to suit your directory.
You should also set the PAM login attribute. Mine is as follows:
pam_login_attribute msSFUName
*
*** Basic info ***
*
For basic setup of LDAP authentication and information storage and retrieval
see the following URLs (specific to OpenLDAP and Linux, but they give one a
good base understanding of how the process works):
http://www.linux.com/howto/LDAP-Implementation-HOWTO/pamnss.html
http://www.openldap.org/lists/openldap-software//200010/msg00097.html
***********************************************************
**** README.paged *****************************************
***********************************************************
Purpose
-------
These amendments cause all "getXXent" calls implemented by
NSS_LDAP to request paging of results in accordance with RFC
2696.
If you are using LDAP searches against a Microsoft Active
Directory database, you will find that search results are
divided into "chunks". A standard "ldap_search" against an
untweaked AD returns a maximum of 1000 entries. To get more than
that, you have to either use an extended search with paging, or
increase the query policy limits on your AD. If you have a
large number of users (we have over 30K) raising the policy
limits that high is worrying.
The page size requested is 1000 entries, and is not a config
file item. However, it should be OK with any Active Directory.
Because of the way the page control is used, any LDAPv3 server
that does not implement paging should simply ignore it and
return entries as normal; however, I haven't been able to test
this.
Installing
----------
The TAR file contains 3 context diff files and one extra C file
(pagectrl. c) that implements the standard API calls for paged
results controls. If your LDAP library supports these anyway,
you shouldn't need it, but I don't know of one that does. The
Sun library has the entry points, but I couldn't get them to
work.
1. Unpack the TAR file in your NSS LDAP directory.
2. Run "patch" to apply the 3 diff files. On my system that is:
patch ldap-nss.c < ldap-nss.c.diff
patch ldap-nss.h < ldap-nss.h.diff
patch Makefile.in < Makefile.in.diff
3. Run "configure" as specified in the NSS LDAP installation
instructions, to recreate the Makefile.
4. Run "make clean"
5. Run "make"
You should now have a new nss_ldap.so ready to copy to /lib.
Max Caines (max.caines@wlv.ac.uk)
16 April 2002
***********************************************************
**** sample nsswitch.conf *********************************
***********************************************************
# An example file that could be copied over to /etc/nsswitch.conf; it
# uses LDAP conjunction with files.
#
# "hosts:" and "services:" in this file are used only if the
# /etc/netconfig file has a "-" for nametoaddr_libs of "inet" transports.
# the following two lines obviate the "+" entry in /etc/passwd and /etc/group.
passwd: files ldap
group: files ldap
# consult DNS first, we will need it to resolve the LDAP host. (If we
# can't resolve it, we're in infinite recursion, because libldap calls
# gethostbyname(). Careful!)
hosts: dns ldap
# LDAP is nominally authoritative for the following maps.
services: ldap [NOTFOUND=return] files
networks: ldap [NOTFOUND=return] files
protocols: ldap [NOTFOUND=return] files
rpc: ldap [NOTFOUND=return] files
ethers: ldap [NOTFOUND=return] files
# no support for netmasks, bootparams, publickey yet.
netmasks: files
bootparams: files
publickey: files
automount: files
# I'm pretty sure nsswitch.conf is consulted directly by sendmail,
# here, so we can't do much here. Instead, use bbense's LDAP
# rules ofr sendmail.
aliases: files
sendmailvars: files
# Note: there is no support for netgroups on Solaris (yet)
netgroup: ldap [NOTFOUND=return] files
***********************************************************
**** sample people.ldif ***********************************
***********************************************************
dn: ou=People,dc=example,dc=com
ou: People
objectClass: organizationalUnit
objectClass: top
dn: cn=Local Root,ou=People,dc=example,dc=com
cn: Local Root
objectClass: posixAccount
objectClass: shadowAccount
objectClass: organizationalRole
uid: root
uidNumber: 0
gidNumber: 0
homeDirectory: /root
dn: cn=Andrew Suffield,ou=People,dc=example,dc=com
cn: Andrew Suffield
objectClass: posixAccount
objectClass: shadowAccount
objectClass: inetOrgPerson
givenName: Andrew
sn: Suffield
uid: asuffield
uidNumber: 1000
gidNumber: 5001
homeDirectory: /home/asuffield
loginShell: /bin/bash
dn: cn=Test User,ou=People,dc=example,dc=com
cn: Test User
objectClass: posixAccount
objectClass: shadowAccount
objectClass: inetOrgPerson
sn: User
uid: test
uidNumber: 1001
gidNumber: 1001
homeDirectory: /home/test
dn: cn=Test User 2,ou=People,dc=example,dc=com
cn: Test User 2
objectClass: posixAccount
objectClass: shadowAccount
objectClass: inetOrgPerson
sn: User
uid: test2
uidNumber: 1002
gidNumber: 1002
homeDirectory: /home/test2
***********************************************************
**** sample groups.ldif ***********************************
***********************************************************
dn: ou=Group,dc=example,dc=com
ou: Group
objectClass: organizationalUnit
objectClass: top
dn: cn=root,ou=Group,dc=example,dc=com
cn: root
objectClass: posixGroup
objectClass: top
gidNumber: 0
memberUid: 0
dn: cn=users,ou=Group,dc=example,dc=com
cn: users
objectClass: posixGroup
objectClass: top
gidNumber: 5000
memberUid: asuffield
memberUid: test
memberUid: test2
dn: cn=admin,ou=Group,dc=example,dc=com
cn: admin
objectClass: posixGroup
objectClass: top
gidNumber: 5001
memberUid: asuffield
***********************************************************
**** LDAP Permissions *************************************
***********************************************************
nss_ldap LDAP Searches
======================
The following list describes the search filters and attributes that nss_ldap
uses for each database type in /etc/nsswitch.conf
For each of the entries the search base is determined by the nss_base_...
parameter in /etc/libnss-ldap.conf.
The search filters are used when the resprective functions are called.
For brevity's sake the attributes have been given as one complete list
per database type and not as one list per each search, which whould
have been more correct.
The information contained in the list may be used to determine the required
permissions to objects and attributes in the directory for the accounts
referred to by 'binddn' and 'rootbinddn' in /etc/libnss-ldap.conf.
'rootbinddn' is used if it is set and libnss-ldap is called with effective
user id 0. In all other cases 'binddn' is used if it is set. If 'binddn is
not set the LDAP searches are done anonymously.
If 'rootbinddn' is set and has read access to the attributes marked below
as "readable by 'rootbinddn' only" while 'binddn' hasn't, then ilibnss-ldap
behaves identical compared to flat files. (i.e. 'getent shadow' returns
nothing for regular users while it returns the information wanted for
root)
The list contains only the unmapped names. If you use libnss-ldap's
attribute or objectclass mapping feature then you have to map the
names in the list to the mapped ones.
aliases
-------
* Filters:
getaliasbyname(): (&(objectclass=nisMailAlias)(cn=%s))
getaliasent(): (objectclass=nisMailAlias)
* Attributes:
cn
rfc822MailMember
bootparams
----------
* Filters:
getbootparamsbyname(): (&(objectclass=bootableDevice)(cn=%s))"
* Attributes:
cn
bootParameter
ethers
------
* Filters:
gethostton(): (&(objectclass=ieee802Device)(cn=%s))
getntohost(): (&(objectclass=ieee802Device)(macAddress=%s))
getetherent(): (objectclass=ieee802Device)
* Attributes:
cn
macAddress
group
-----
* Filters:
getgrnam(): (&(objectclass=posixGroup)(cn=%s))
getgrgid(): (&(objectclass=posixGroup)(gidNumber=%s))
getgrent(): (&(objectclass=posixGroup))
getgroupsbymemberanddn(): (&(objectclass=posixGroup)(|(memberUid=%s)(uniqueMember=%s)))
getgroupsbydn(): (&(objectclass=posixGroup)(uniqueMember=%s))
getgroupsbymember(): (&(objectclass=posixGroup)(memberUid=%s))
* Attributes:
cn
userPassword <- should be readable by 'rootbinddn' only
memberUid
uniqueMember
gidNumber
hosts
-----
* Filters:
gethostbyname(): (&(objectclass=ipHost)(cn=%s))
gethostbyaddr(): (&(objectclass=ipHost)(ipHostNumber=%s))
gethostent(): (objectclass=ipHost)
* Attributes:
cn
ipHostNumber
networks
--------
* Filters:
getnetbyname(): (&(objectclass=ipNetwork)(cn=%s))
getnetbyaddr(): (&(objectclass=ipNetwork)(ipNetworkNumber=%s))
getnetent(): (objectclass=ipNetwork)",
* Attributes:
cn
ipNetworkNumber
ipNetmaskNumber
protocols
---------
* Filters:
getprotobyname(): (&(objectclass=ipProtocol)(cn=%s))
getprotobynumber(): (&(objectclassipProtocols)(ipProtocolNumber=%s))
getprotoent(): (objectclass=ipProtocol)
* Attributes:
cn
ipProtocolNumber
passwd
------
* Filters:
getpwnam(): (&(objectclass=posixAccount)(uid=%s))
getpwuid(): (&(objectclass=posixAccount)(uidNumber=%s))
getpwent(): (objectclass=posixAccount)
* Attributes:
uid
userPassword <- should be readable by 'rootbinddn' only
uidNumber
gidNumber
cn
homeDirectory
loginShell
gecos
description
shadowLastChange <- should be readable by 'rootbinddn' only
shadowMax <- should be readable by 'rootbinddn' only
shadowExpire <- should be readable by 'rootbinddn' only
rpc
---
* Filters:
getrpcbyname(): (&(objectclass=oncRpc)(cn=%s))
getrpcbynumber(): (&(objectclass=oncRpc)(oncRpcNumber=%s))
getrpcent(): (objectclass=oncRpc)
* Attributes:
cn
oncRpcNumber
services
--------
* Filters:
getservbyname(): (&(objectclass=ipService)(cn=%s))",
getservbynameproto(): (&(objectclass=ipService)(cn=%s)(ipServiceProtocol=%s))
getservbyport(): (&(objectclass=ipService)(ipServicePort=%s))
getservbyportproto(): (&(objectclass=ipService)(ipServicePort=%s)(ipServiceProtocol=%s))
getservent(): (objectclass=ipService)
* Attributes:
cn
ipServicePort
ipServiceProtocol
shadow
------
* Filters:
getspnam(): (&(objectclass=shadowAccount)(uid=%s))
getspent(): (objectclass=shadowAccount)
* Attributes:
uid
userPassword
shadowLastChange
shadowMax
shadowMin
shadowWarning
shadowInactive
shadowExpire
shadowFlag
netgroup
--------
* Filters:
getnetgrent(): (&(objectclass=nisNetgroup)(cn=%s))
innetgr(): (&(objectclass=nisNetgroup)(memberNisNetgroup=%s))
* Attributes:
cn
nisNetgroupTriple
memberNisNetgroup
automount
---------
* Attributes:
cn
nisMapEntry
nisMapName
description
-- Peter Marschall <peter@adpm.de>
***********************************************************
**** ANNOUNCE *********************************************
***********************************************************
ANNOUNCING NSS_LDAP
===================
1. What is nss_ldap?
--------------------
nss_ldap is a set of C library extensions which allows X.500 and LDAP
directory servers to be used as a primary source of aliases, ethers,
groups, hosts, networks, protocol, users, RPCs, services and shadow
passwords (instead of or in addition to using flat files or NIS).
nss_ldap nominally supports the following operating system libraries:
o the Nameservice Switch in Solaris 2.4 to 9
o the Nameservice Switch in HP-UX 11
o the Nameservice Switch in the GNU C Library 2.1 (as
in libc.so.6 under Linux)
o the Nameservice Switch in FreeBSD 5.x
o the Information Retrieval Service (IRS) in BIND
o the Information Retrieval Service (IRS) and proprietary
authentication and identity interface in AIX 4.3.3
nss_ldap is an implementation of the schema specified in RFC 2307
and is compatible with that used in PADL Software Pty Ltd's
NIS/LDAP gateway (ypldapd), and current versions of Solaris,
HP-UX and MacOS X.
2. What can it do for me?
-------------------------
nss_ldap lets you use LDAP servers, like Netscape's Directory Server,
to distribute users, hosts, groups and other like information throughout
an organization. Because LDAP is a hierarchical directory service,
you can distribute the information in a manner which reflects an
organizational structure. This contrasts with the flat, single domain
policy of NIS. LDAP has many of the advantages of NIS+ (security and
scalability) without the complexity.
nss_ldap will work alongside your existing NIS, NIS+, DNS and flat file
name services. More importantly, because it builds as a shared library,
you don't have to recompile any of your applications to take advantage
of LDAP. When used with a directory server under NT, it may be helpful
in synchronizing Unix and NT accounts.
3. What are its limitations?
----------------------------
Currently, some "maps" (like bootparams) are not supported. It's also
alpha software, so use it at your own risk. This should be considered
with respect to the fact the nss_ldap is loaded into the address space
of *every* process which uses the C library's resolver functions and
has LDAP in its search order. (This isn't entirely true under Solaris,
but the implications are similar.)
Finally, it only supports Linux and Solaris (and some versions of
BSD). You might want to look at ypldapd (see below) if you need to
support NIS clients.
4. How much does it cost?
-------------------------
It's free, and distributed under the GNU General Library Public
Licence (LGPL). Please read the file COPYING.LIB For more information.
5. Where do I get it?
---------------------
nss_ldap is available from:
<URL:http://www.padl.com/download/nss_ldap.tgz>
<URL:ftp://ftp.padl.com/pub/nss_ldap.tgz>
We have also made available some Perl scripts for populating LDAP
databases from existing flat files, NIS and/or NetInfo data.
<URL:http://www.padl.com/download/MigrationTools.tgz>
<URL:ftp://www.padl.com/pub/MigrationTools.tgz>
You'll need to compile a position-independent LDAP client library
(libldap). You can either get the entire LDAP package from the University
of Michigan (see below) and add "-fPIC" (if you're using gcc) to the
C compiler flags; download the Mozilla SDK from www.mozilla.org;
download the prebuilt Netscape LDAP SDK from developer.netscape.com;
or download OpenLDAP from www.openldap.org.
6. Where can I get more information?
------------------------------------
To discuss nss_ldap, ypldapd, and related technologies, you may subscribe
to the following mailing list:
<URL:mailto:ldap-nis-request@padl.com>
Send an electronic mail message with "subscribe" in the message body to
join the list.
To contact the developers, email:
<URL:mailto:dev@padl.com>
Note that PADL offer commercial support on a per-incident basis. The
support@padl.com is for commercial support customers only.
For more information on using LDAP for name resolution, and related software,
see:
<URL:http://www.padl.com>
And if you need an LDAP server, or some general information on LDAP,
see:
<URL:http://www.openldap.org>
7. Who wrote it?
----------------
nss_ldap was written by PADL Software Pty Ltd <dev@padl.com>. Many
others have contributed, see the file AUTHORS in this directory.
Please read the following document before submitting any
contributions:
<URL:http://www.padl.com/Articles/GuidelinesforContributing.html>
|