]> granicus.if.org Git - linux-pam/blob - CHANGELOG
Relevant BUGIDs: 476963
[linux-pam] / CHANGELOG
1
2 $Id$
3
4 -----------------------------
5
6 TODO:
7
8   - sanitize use of md5 throughout distribution.. Make a static
9     library for helping to develop modules that contains it and other
10     stuff. Also add sha-1 and ripemd-160 digest algorithms.
11   - once above is done. remove hacks from the secret@here module etc..
12   - remove prototype for gethostname in pam_access.c (Derrick)
13   - document PAM_INCOMPLETE changes
14   - verify that the PAM_INCOMPLETE interface is sensible.   Can we
15     catch errors? should we permit item changing etc., between
16     pam_authenticate re-invocations?
17   - verify that the PAM_INCOMPLETE interface works (auth seems ok..)
18   - add PAM_INCOMPLETE support to modules (partially added to pam_pwdb)
19   - work on RFC.
20   - do we still need to remove openlog/closelog from modules..?
21   - auth and acct support in pam_cracklib, "yes, I know the password
22     you just typed was valid, I just don't think it was very strong..."
23   - add in the pam_cap and pam_netid modules
24
25 ====================================================================
26 Note, as of release 0.73, all checkins should be accompanied with a
27 Bug ID. The bug IDs relate to sourceforge IDs.. (Of course, nothing is
28 ever that simple. It turns out that at some point in Sourceforge's
29 history all of the bug ids got bumped by 100000, so pretty much if you
30 see a bug ID below that begins with a '1' and your attempted query
31 fails, try adding 100000 to the number and trying again. I believe
32 this only affects bugs before release 0.76.)
33
34 You can query the related bug description with the following URL:
35
36  http://sourceforge.net/tracker/index.php?func=detail&aid=XXXXXX&group_id=6663&atid=106663
37
38 Where you should replace XXXXXX with a bug-id.
39
40 For general documentation completion work, I'm doing it all with
41 respect to specific tasks. Open tasks are listed here:
42
43  http://sourceforge.net/pm/task.php?group_id=6663&group_project_id=2741&func=browse&set=open
44
45 If you have found a bug in Linux-PAM (including a documentation bug,
46 or a new feature request and/or patch), please consider filing such a
47 bug report - outstanding bugs are listed here:
48
49  http://sourceforge.net/tracker/?atid=106663&group_id=6663&func=browse
50
51 (to file another bug see the 'submit bug' button on that page).
52
53 ====================================================================
54
55 0.77: please submit patches for this section with actual code/doc
56       patches!
57
58 * pam_unix and pam_pwdb: by default turn off the SIGCHLD handler while
59   running the helper binary (patch from Nalin) added the "noreap"
60   module argument to both of these modules to turn off this new
61   default. (Bug 476963 - agmorgan).
62 * updated CHANGELOG and configure.in for 0.77 work.
63
64 0.76: Mon Jul  8 21:44:59 PDT 2002
65
66 * pam_unix: fix for legacy crypt() support when the password entered
67   was long. (Bug 521314 - agmorgan).
68 * pam_access no longer include gethostname() prototype complained from
69   David Lee (Bug 415423 - agmorgan).
70 * make pam_nologin more secure by default, added two new module
71   arguments etc. - acting on suggestion from Nico (Bug 419307 -
72   agmorgan)
73 * link in libpam to libpam_misc - since the latter uses functions in
74   the former it makes some sort of sense to do this (although, in the
75   static library case, I remain to be convinced). (Bug 565470 -
76   agmorgan).
77 * absorbed some of the proposed darwin (OS X) changes from Luke Howard
78   (of PADL software) - hopefully will get the rest (see Rob Braun's
79   534205) by 0.77 (Bug 491466 - agmorgan).
80 * README fix for pam_unix from Nalin (Bug 476971 - agmorgan).
81 * add support for building pdf files from the documentation - request
82   from 'lolive' (Bug 471377 - agmorgan).
83 * documented the equivalent '[..]' expressions for "required"
84   etc. Request from Ross Patterson (Bug 529078 - agmorgan).
85 * '[...]' parsing: document it and also fix it to support '\]' escape
86   sequence. Feature request from Russell Kliese (Bug 517064 -
87   agmorgan).
88 * pam_rootok: compilation warning noted by Tony den Haan wrt no
89   prototype for strcmp() (Bug 557322 - agmorgan).
90 * documentation: (a few of mine in passing) and app documentation
91   suggestions regarding PAM environment variables and module
92   documentation changes regarding the conversation function from Jenn
93   Vesperman (Bug 527821, 527965 - agmorgan)
94 * documentation: pam_time.sgml typo fixed, pam_motd exists now,
95   correct Red Hat comment about config files (Bugs 554274, 554261,
96   554182 - agmorgan)
97 * pam_limits: added '%' domain for maxlogins limiting, now '*' and @group
98   have the old meaning (every) and '%' the new one (all)
99   (Bug 533664 - baggins)
100 * pam_limits: put not so interesting log messages under debug arg
101   (Bug 533668 - baggins)
102 * pam_access: added the 'fieldsep=' argument (Bug 547051 - agmorgan),
103   made a PAM_RHOST of "" equivalent to NULL (Bug 547521 - agmorgan).
104 * pam_limits: keep well know behaviour of maxlogins default ('*') limit
105   (Bug 533664 - baggins)
106 * pam_unix: more from Nalin log password changes (Bug 517743 - agmorgan)
107 * pam_limits: make it use the priority value specified in config
108   (bug 530428 - baggins)
109 * pam_unix: removed broken code in password update code. Report from
110   Len Lattanzi (Bug 507379 - agmorgan)
111 * pam_mkhomedir: recurse directories. Patch from Nalin (Bug 476981 -
112   agmorgan)
113 * pam_limits can handle negative priority limits now (which can apply
114   to the superuser too) - based on patch from Nalin. Also cleanup the
115   error handling that was very sloppy before. Also, courtesy of Berend
116   De Schouwe get the math right on login counting (Bug 476990, 476987,
117   493294 - agmorgan)
118 * documentation: random typo fixes from Nalin and more stuff from me
119   (Bug 476949, Tasks 43507, 17426 - agmorgan)
120 * A Tru64 fix (given other stuff has already resolved this, it
121   actually just a comment actually) from 'Eddie'. (Bug 418450 -
122   agmorgan)
123 * pam_handlers: BSD fix from Dag-Erling Smørgrav and Anton Berezin
124   (Bug 486063 - agmorgan)
125 * added the dynamic/* directory to the distribution. If you go in
126   there after building the rest of the tree, you'll make a pam.so
127   object that can be used by something like a java runtime with
128   dlopen. Its not very well tested - caveat emptor. (Bug 232194 -
129   agmorgan)
130 * somehow pam_unix has started forcing the user prompt to be "login: ".
131   This is entirely inapropriate as it overrides PAM_USER_PROMPT. (Bug
132   486361 - agmorgan).
133 * added a static module helper library object includes a few changes
134   to examples/xsh.c for testing purposes (added a simple shell wrapper
135   for running xsh with the sandbox libraries), and also modified the
136   pam_rhosts_auth module to use this new library. (Bug 490938, 409852
137   - agmorgan).
138 * pam_unix: fix 'likeauth' to kill off the memory leak once and for all.
139   (Bug 483959 - vorlon)
140 * pam_unix: restore handling of 'likeauth' argument to a known working
141   state; prettify AUTH_RETURN macro; remove redundant argv checks in
142   pam_sm_setcred() (Bugs 483959, 113596 - vorlon)
143 * pam_cracklib: another try at implementing similar() from Harald
144   Welte and Nalin (Bugs 436053, 476957 - agmorgan)
145 * pam_access: default access.conf file contained a type (console
146   instead of LOCAL) fix from Nalin (Bug 476934 - agmorgan)
147 * pam_unix: fixed bizarre memory leak pointed out by Fernando Trias
148   (Bug 483959 - agmorgan)
149 * misc string comparison length checking changes from Nalin. Modules
150   touched, pam_cracklib, pam_listfile, pam_unix, pam_wheel (Bug 476947 -
151   agmorgan)
152 * pam_userdb: require that all of typed password matches that in
153   database report and fix from Vladimir Pastukhov. (Bug 484252 - agmorgan)
154 * pam_malloc: revived malloc debugging code, now tied to
155   --enable-memory-debug and added strdup() support (Bug 485454 - agmorgan)
156 * pam_tally: Nalin's fix for lastlog corruption (Bug 476985 - agmorgan)
157 * pam_rhosts: Nalin adds support for '+hostname', and zdd fix
158   compilation warning. (Bug 476986 - agmorgan)
159 * pam_motd: Nalin fixed compiler warning. (Bug 476938 - agmorgan)
160 * pam_pwdb: Solar Designer pointed out that there was a problem with
161   the compatibility support for md5 password hashing. (Bug 460717,
162   476961 - agmorgan)
163 * pam_issue: Nalin found segfaulting problems if the PAM_USER_PROMPT
164   is unset, found some similar problems with assumptions about
165   realloc. (Bug 476983 - agmorgan)
166 * pam_env: 'weichangyang of hotmail' pointed out a wild string with no
167   valid '\0' was leading to problems with sshd and suggested fix (Bug
168   473034 - agmorgan)
169 * MANDIR cleanup. It defaults to /usr/share/man, but can be overridden
170   using the --enable-mandir ./configure option, similarly for DOCDIR
171   from Nalin (Bug 476940 - agmorgan)
172 * pam_filter cleanup (including moving the filter directory) Nalin
173   and Harald Welte (Bugs 436057, 476970 - agmorgan)
174 * db3 is now recognized as a libdb candidate (Bug 435764 - agmorgan)
175 * more changes (extracted from redhat version) courtesy of
176   Harald Welte (Bugs pam_limits=436061, pam_lastlog=436060,
177   pam_mkhomedir/pam_env=435991 - agmorgan)
178 * fix for legacy behavior of pam_setcred and pam_close_session in
179   the case that pam_authenticate and pam_open_session hadn't been
180   called - bug report from Seongwan Park. (Bug 468724 - agmorgan)
181 * some BSD updates and fixes from Mark Murray - including a slightly
182   more robust conversation function and some minimization of gcc
183   warnings. (Bugs 449203,463984 - agmorgan)
184 * verified that the setcred stack didn't suffer from the bug I was
185   nervous about, add a new module pam_debug to help me test this.
186   fixed a libpam/pam_dispatch.c instrumentation line that I tripped
187   over when testing. Also restructured pam_warn to help here (Bug
188   424315 - agmorgan).
189 * pam_unix/support.c: sample use of reentrant NSS function.  Not yet active,
190   because modules do not include _pam_aconf_h! (Bug 440107 - vorlon)
191 * doc/Makefile changes - use $(mandir) [courtesy Harald Welte] (Bug
192   435760) and add some rules to make/delete the draft rfc I've been
193   working on (Task 17426 - agmorgan)
194 * pam_modules.sgml: sourceforge has changed its CVS viewing software
195   (Bug 460491 - agmorgan)
196 * pam_unix_passwd: got rid of an annoying warning (Bug 461089 - agmorgan)
197 * configure.in, _pam_aconf.h.in: set the stage for fully reentrant PAM
198   modules, with some infrastructure to detect getxxbyxx_r() functions
199   (Bug 440107 - vorlon)
200 * pam_unix: removed superfluous use of static variables in md5 and bigcrypt
201   routines, bringing us a step closer to thread-safeness.  Eliminated
202   some variable indirection along the way.  (Bug 440107 - vorlon)
203 * pam_tally: remove #include of stdlib.h, which isn't needed by anything
204   found in this module.  Can be readded if we find a real need for it at
205   a later date. (Bug 436432 - vorlon)
206 * pam_tally: added an #include (was it really needed?) and made the
207   pam_tally app install (with more pretty printing and a corrected
208   Makefile dependency) motivated by a (red hat diff) courtesy of Harald
209   Welte (Bug 436432 - agmorgan)
210 * configure.in changes to help support non-Linux environments courtesy
211   of Scott T. Emery (Bug 422563 - agmorgan)
212 * made a pam_cracklib enhancement to interpret -ve limits in a
213   sensible fashion contributed by Werner Puschitz (Bug 413162 -
214   agmorgan)
215 * another fix for the latest number of rlimits available to pam_limits
216   (Bug 424060 - agmorgan)
217 * removed stale link from pam_pwdb documentation (Bug 433460 - agmorgan)
218 * pam_appl.sgml change - more discussion of choosing a service name
219   (Bug 417512 - agmorgan)
220 * more specific linking requirements for -lndbm for pam_userdb - from
221   David Lee (Bug 417339 - agmorgan)
222 * a large number of small changes to make AIX support better (Bug
223   416229 - agmorgan)
224 * $(MAKE) instead of 'make' - from Scott T. Emery (Bug 422144 -
225   agmorgan)
226 * c++ header fixes for pam_misc.h and pam_client.h - from Alexandre
227   Sagala (Bug 420270 - agmorgan)
228 * pam_access fixes - looks out for trailing '.' - from Carlo Marcelo
229   Arenas Belon (Bug 419631 - agmorgan)
230 * don't zero out password strings during pam_unix's password changing
231   function (Bug 419803 - vorlon)
232 * propagate some definitions to the _pam_aconf.h file - from David Lee
233   (Bug 415419 - agmorgan)
234 * solaris GCC OS_CFLAGS change from David Lee (Bug 415412 - agmorgan)
235 * added a comment to this CHANGELOG to explain why most of the bugids
236   used below appear not to be known to sourceforge [try adding 100000
237   to the bugid number.] (Bug 414943 - agmorgan)
238 * bumped version numbers and also added support for SONAME defines
239   that appear not to have survived the great autoconf experiment (Bug
240   414669 - agmorgan).
241
242 0.75: Sat Apr  7 23:10:50 PDT 2001
243
244                           ** WARNING **
245
246 This release contains backwardly incompatible changes to
247 libpam. Prior versions were buggy - see bugfix for Bug 129775.
248
249                           ** WARNING **
250
251 * made 0.75 release (Bug 414665 - agmorgan)
252 * pam_pwdb has been removed from the suggested pam.conf template. I've
253   replaced it with pam_unix. (Bug 227565 - agmorgan)
254 * pam_limits - Richard M. Yumul reported that "<domain> -" didn't
255   work, first fix suggested by Werner Puschitz (Bug 404953 - agmorgan)
256 * Nicolay Pelov suggested a simple fix for freebsd support (Bug 407282
257   - agmorgan)
258 * Michel D'HOOGE submitted documentation fixes (Bug 408961 - agmorgan)
259 * fix for module linking directions (Bug 133545 - agmorgan)
260 * fix for glibc-2.2.2 compilation of pam_issue (Bug 133542 - agmorgan)
261 * fix pam_userdb to make and link both .o files it needs - converse()
262   wasn't being linked! (Bug 132880 - agmorgan)
263 * added some sys-admin documentation for the pam_tally module (Bug
264   126210 - agmorgan).
265 * added a link to module examples from the module writers doc (Bug
266   131192 - agmorgan).
267 * fixed a small security hole (more of a user confusion issue) with
268   the unix and pwdb password helper binaries. The beef is described in
269   the bug report, but no uid change was possible so no-one should
270   think they need to issue a security bulletin over this one! (Bug
271   112540 - agmorgan)
272 * pam_lastlog needs to be linked with -lutil, also removed ambiguity
273   from sysadmin guide regarding this module being a 'session' module
274   (Bug 131549 - agmorgan).
275 * pam_cracklib needs to be linked with -lcrypt (old password checking)
276   (Bug 131601 - agmorgan).
277 * fixes for static library builds and also the examples when linked
278   with the debugging build of the libraries. (Bug 131783 - agmorgan)
279 * fixed URL for original RFC to a cached kernel.org file. (Bug 131503
280   - agmorgan)
281 * quoted the $CRACKLIB_DICTPATH test in configure.in (Bug 130130 -
282   agmorgan).
283 * improved handling of the setcred/close_session and update chauthtok
284   stack. *Warning* This is a backwardly incompatable change, but 'more
285   sane' than before. (Bug 129775 - agmorgan)
286 * bumped the version number, and added some code to assist in making
287   documentation releases (Bug 129644 - agmorgan).
288
289 0.74: Sun Jan 21 22:36:08 PST 2001
290
291 * made 0.74 release (Bug 129642 - agmorgan)
292 * libpam - cleaned up a few non-static functions to be static and added
293   support for libpam to enforce things like pam_[gs]et_data() and
294   AUTHTOK rules for using the API. Also documented pam_[gs]et_item()
295   a little better including return codes (Bugs 129027, 128576 -
296   agmorgan).
297 * pam_access - fixed the non-default config file option (Bug 127561 -
298   agmorgan)
299 * pam.8 manual page clarified with respect to the default location for
300   finding modules, also added some text describing the [...] control
301   syntax. (Bug 127625 - agmorgan)
302 * md5.h ia64 fixes for pam_unix and pam_pwdb (Bug 127700 - agmorgan)
303 * removed requirement for c++ from the configure{.in,} files (Bug
304   128298 - agmorgan)
305 * removed subdirectories from man page redirections (124396 - baggins)
306 * per David Lee, fixed non-POSIX shell command in modules/pam_filter/Makefile
307   (Bug 126440 - vorlon)
308 * modify format of pam_unix log messages to include service name
309   (Bug 126423 - vorlon)
310 * prevent pam_unix from logging unknown usernames (Bug 126431 - vorlon)
311 * changed format of pam_unix 'authentication failure' log messages to make
312   them clearer and more consistent (Bug 126036 - vorlon)
313 * improved portability of pam_unix by eliminating Linux-specific utmp
314   defines in PAM_getlogin() (Bug 125704 - vorlon)
315 * removed static variables from pam_tally (Bug 117434 - agmorgan)
316 * added copyright message to pam_access module from original logdaemon
317   sources (Bug 125022 - agmorgan)
318 * configure.in - removed the GCC -Wtraditional flag (Bug 124923 - agmorgan)
319 * pam_mail - use PAM_PATH_MAILDIR as the location of mail spool
320   (Bug 124397 - baggins)
321 * _pam_aconf.h.in, configure.in - added PAM_PATH_MAILDIR set via
322   --with-mailspool=dir option (default is _PAM_MAILDIR if defined
323   in paths.h otherwise /var/spool/mail (Bug 124397 - baggins)
324 * removed unnecessary CVS Log tags from all over the source
325   (Bug 124391 - baggins)
326 * pam_tally - check for PAM_TTY if PAM_RHOST is not set when writing
327   to faillog (Bug 124394 - baggins)
328 * use O_NOFOLLOW if available when opening debug log (Bug 124385 - baggins)
329 * pam_cracklib - removed comments about pam_unix not working with
330   pam_cracklib, added information about use_authtok parameter
331   (Bug 124388 - baggins)
332 * pam_userdb - fixed wrong definition of struct pam_module (was pam_wheel)
333   (Bug 124386 - baggins)
334 * fixed example/Makefile include path (Bug 124187, 127563(?) - agmorgan)
335 * pam_userdb compiles on RH5x. Also removed circular dependency on
336   configure.in. Also bumped revision number to 0.74. (Bug 124136 -
337   agmorgan)
338
339 0.73: Sat Dec  2 00:04:04 PST 2000
340
341 * updated documentaion revisions and added 'make release' support
342   to the top level Makefile (Bug 124132 - agmorgan).
343 * documented Qmail support in pam_mail (Bug 109219 - baggins)
344 * add change_uid option to pam_limits, and set real uid only if
345   this option is present (Bug 124062 - baggins)
346 * pam_limits - set real uid to the user for who we set limits.
347   (Bug 123972 - baggins)
348 * removed static variables from pam_limits (thread safe now). (Bug
349   117450 - agmorgan).
350 * removed static variable from pam_wheel (module should be thread safe
351   now). (Bug 112906 - agmorgan)
352 * added support for '/' symbols in pam_time and pam_group config files
353   (support for modern terminal devices). Fixed infinite loop problem
354   with '\\[^\n]' in these files. (Bug 116076 - agmorgan)
355 * avoid potential SIGPIPE when writing to helper binaries with (Bug
356   123399 - agmorgan)
357 * replaced bogus logic in the pam_cracklib module for determining if
358   the replacement is too similar to the old password (Bug 115055 -
359   agmorgan)
360 * added accessconf=<filename> feature to pam_access - request from
361   Aldrin Martoq and Meelis Roos (Bugs 111927,117240 - agmorgan)
362 * fix for pam_limit module not dealing with all limits Adam J. Richter
363   (Bug 119554 - agmorgan)
364 * comment fix describing fail_delay callback in _pam_types.h (Bug
365   112646 - agmorgan)
366 * "likeauth" fix for pam_unix and pam_pwdb which (Bug 113596 - agmorgan)
367 * fix for pam_unix (support.c) to avoid segfault with NULL password
368   (Bug 113238 - vorlon)
369 * fix to pam_unix_passwd: try repeatedly to get a lock on the password
370   file, instead of failing immediately (Bug 108845 - fix vorlon)
371 * fix to pam_shells: logged information was not formatted correctly
372   (extra comma) (Bug 111491 - fix vorlon)
373 * fix for C++ application support (Bug 111645 - fix agmorgan)
374 * fix for typo in pam_client.h (Bug 111648 - fix agmorgan)
375 * removal of -lpam from pam_mkhomedir Makefile (Bug 116380 - fix agmorgan)
376 * autoconf support [Task ID 15788, Bug ID 108297 - agmorgan with help!]
377  - bugfix for libpamc.h include file [Bug ID 117476 - agmorgan]
378  - bugfix for pam_filter.h inclusion [Bug ID 117474 - agmorgan]
379
380 0.72: Mon Dec 13 22:41:11 PST 1999
381
382 * patches from Debian (Ben Collins): pam_ftp supports event driven
383   conversations now; pwdb_chkpwd cleanup; pam_warn static compile fix;
384   user_db compiler warnings removed; debian defs file; pam_mail can
385   now be used as a session module
386 * ndbm compilation option for user_db module (fix explained by Richard Khoo)
387 * pam_cracklib bug fix
388 * packaging fixes & build from scratch stuff (Konst Bulatnikov & Frodo
389   Looijaard)
390 * -ldl appended to the libpam.so compilation make rule. (Charles Seeger)
391 * Red Hat security patch for pam_pwdb forwarded by Debian! (Ben
392   Collins. Fix provided by Andrey as it caught the problem earlier in the
393   code.)
394 * heuristic to prevent leaking filedescriptors to an agent. [This needs
395   to be better supported perhaps by an additional libpamc API function?]
396 * pam_userdb segfault fix from (Ben Collins)
397 * PAM draft spec extras added at request of 'sen_ml'
398
399 0.71: Sun Nov  7 20:21:19 PST 1999
400
401 * added -lc to linker pass for pam_nologin module (glibc is weird).
402 * various header changes to lower the number of warnings on glibc
403   systems (Dan Yefimov)
404 * merged a bunch of Debian fixes/patches/documentation (Ben Collins)
405   things touched: libpam (minor); doc/modules/pam_unix.sgml; pam_env
406   (plus docs); pam_mkhomedir (new module for new home directories on
407   the fly...); pam_motd (new module); pam_limits (adjust to match
408   docs); pam_issue (new module + doc) [Some of these were also
409   submitted by Thorsten Kukuk]
410 * small hack to lower the number of warnings that pam_client.h was
411   generating.
412 * debian and SuSE apparently can use the pam_ftp module, so
413   removed the obsolete comment about this from the docs. (Thorsten
414   Kukuk)
415
416 0.70: Fri Oct  8 22:05:30 PDT 1999
417
418 * bug fix for parsing of value=action tokens in libpam/pam_misc.c was
419   segfaulting (Jan Rekorajski and independently Matthew Melvin)
420 * numerous fixes from Thorsten Kukuk (icluding much needed fixes for
421   bitrot in modules and some documentation) that got included in SuSE 6.2.
422 * reentrancy issues in pam_unix and pam_cracklib resolved (Jan Rekorajski)
423 * added hosts_equiv_rootok module option to pam_rhosts module (Tim Berger)
424 * added comment about 'expose_account' module argument to admin and
425   module writers' docs (request from Michael K Johnson).
426 * myriad of bug fixes for libpamc - library now built by default and
427   works with the biomouse fingerprint scanner agent/module
428   (distributed separately).
429
430 0.69: Sun Aug  1 20:25:37 PDT 1999
431
432 * c++ header #ifdef'ing for pam_appl.h (Tuomo Pyhala)
433 * added pam_userdb module (Cristian Gafton)
434 * minor documentation changes
435 * added in revised pam_client library (libpamc). Not installed by
436   default yet, since the example agent/module combo is not very secure.
437 * glibc fixes (Thorsten Kukuk, Adam J. Richter)
438
439 0.68: Sun Jul  4 23:04:13 PDT 1999
440
441 * completely new pam_unix module from Jan Rekorajski and Stephen Langasek
442 * Jan Rekorajski pam_mail - support for Maildir format mailboxes
443 * Jan Rekorajski pam_cracklib - support for old password comparison
444 * Jan Rekorajski bug fix for pam_pwdb setcred reusing auth retval
445 * Andrey's pam_tally patch (lstat -> fstat)
446 * Robert Milkowski's additional pam_tally patches to **change format of
447   /var/log/faillog** to one from shadow-utils, add new option "per_user"
448   for pam_tally module, failure time logging, support for fail_line
449   field, and support for fail_locktime field with new option
450   no_lock_time.
451 * pam_tally: clean up the tally application too.
452 * Marcin Korzonek added process priority settings to pam_limits (bonus
453   points for adding to documentation!)
454 * Andrey's pam_pwdb patch (cleanup + md5 endian fubar fix)
455 * more binary prompt preparations (make misc conv more compatible with spec)
456 * modified callback hook for fail delay to be more useful with event
457   driven applications (changed function prototype - suspect no one
458   will notice). Documented this in app developer guide.
459 * documentation for pam_access from Tim Berger
460 * syntax fixes for the documentation - a long time since I've built it :*(
461   added some more names to the CREDITS file.
462
463 0.67: Sat Jun 19 14:01:24 PDT 1999
464
465 * [dropped libpam_client - libpamc will be in the next release and
466    conforms to the developing spec in doc/specs/draft-morgan-pam.raw.
467    Sorry if you are keeping a PAM tree in CVS. CVS is a pain for
468    directories, but this directory was actually not referenced by
469    anything so the disruption should be light.]
470 * updates to pam_tally from Tim
471 * multiple updates from Stephen Langasek to pam_unix
472 * pam_filter had some trouble compiling (bug report from Sridhar)
473 * pam_wheel now attempts to identify the wheel group for the local
474   system instead of blindly assuming it is gid=0. In the case that
475   there is no "wheel" group, we default to assuming gid=0 is what was
476   meant - former behavior. (courtesy of Sridhar)
477 * NIS+ changes to pam_unix module from Dmitry O Panov
478 * hopefully, a fix for redefinition of LOG_AUTHPRIV (bug report Luke
479   Kenneth Casson Leighton)
480 * fix for minor typo in pam_wheel documentation (Jacek Kopecky)
481 * slightly more explanation of the [x=y] pam.conf syntax in the sys
482   admin guide.
483
484 0.66: Mon Dec 28 20:22:23 PST 1998 <morgan@linux.kernel.org>
485
486 * Started using cvs to keep track of changes to Linux-PAM.  This will
487   likely break some of the automated building stuff (RPMs etc..).
488 * security bug fix to pam_unix and pam_tally from Andrey.
489 * modules make file is now more automatic.  It should be possible to
490   unpack an external module in the modules directory and have it automatically
491   added to the build process.  Also added a modules/download-all script
492   that will make such downloading easier.  I'm happy to receive patches to
493   this file, informing the distribution of places from which to enrich itself.
494 * removed pam_system_log stuff.  Thought about it long and hard: a
495   bad idea.  If libc cannot guarantee a thread safe syslog, it needs
496   to be fixed and compatibility with other PAM libraries was
497   unnecessarily strained.
498 * SAG documentation changes: Seth Chaiklin
499 * rhosts: problems with NIS lookup failures with the root-uid check.
500   As a work-around, I've partially eliminated the need for the lookup
501   by supplying two new arguments: no_uid_check, superuser=<username>.
502   As a general rule this is more pluggable, since this module might be
503   used as an authentication scheme for a network service that does not
504   need root privilege...
505 * authenticate retval -> setcred for pam_pwdb (likeauth arg).
506 * pam_pwdb event driven support
507 * non openlog pam_listfile logging
508 * BUGFIX: close filedescriptor in pam_group and pam_time (Emmanuel Galanos)
509 * Chris Adams' mailhash change for pam_mail module
510 * fixed malloc failure check in pam_handlers.c (follow up to comment
511   by Brad M. Garcia).
512 * update to _pam_compat.h (Brad M. Garcia)
513 * support static modules in libpam again (Brad M. Garcia)
514 * libpam/pam_misc.c for egcs to grok the code (Brad M. Garcia)
515 * added a solaris-2.5.1 defs file (revived by Derrick J Brashear)
516 * pam_listfile logs failed attempts
517 * added a comment (Michael K Johnson pointed it out) about sgml2latex
518   having a new syntax.  I'll make it the change real when I upgrade...
519 * a little more text to the RFC, spelling fix from William J Buffam.
520 * minor changes to pam_securetty to accommodate event driven support.
521
522 0.65: Sun Apr  5 22:29:09 PDT 1998 <morgan@linux.kernel.org>
523
524 * added event driven programming extensions to libpam
525  - added PAM_INCOMPLETE handling to libpam/pam_dispatch.c
526  - added PAM_CONV_AGAIN which is a new conversation response that
527    should be mapped to PAM_INCOMPLETE by the module.
528  - ensured that the pam_get_user() function can resume
529  - changes to pam_strerror to accommodate above return codes
530  - clean up _pam_former_state at pam_end()
531  - ensured that former state is correctly initialized
532  - added resumption tests to pam_authenticate(), pam_chauthtok()
533  - added PAM_FAIL_DELAY item for pausing on failure
534
535 * improved _pam_macros.h so that macros can be used as single commands
536   (Andrey)
537
538 * reimplemented logging to avoid bad interactions with libc.  Added
539   new functions, pam_[,v]system_log() to libpam's API.  A programmer
540   can check for this function's availablility by checking if
541   HAVE_PAM_SYSTEM_LOG is #defined.
542
543 * removed the reduce conflict from pam_conv1 creation -- I can sleep
544   again now. :^]
545
546 * made building of static and dynamic libpam separate.  This is
547   towards making it possible to build both under Solaris (for Derrick)
548
549 * made USE_CRACKLIB a condition in unix module (Luke Kenneth Casson Leighton)
550
551 * automated (quiet) config installation (Andrey)
552
553 0.64: Thu Feb 19 23:30:24 PST 1998 Andrew Morgan <morgan@linux.kernel.org>
554
555 * miscellaneous patches for building under Solaris (Derrick J Brashear)
556
557 * removed STATIC support from a number of module Makefiles.  Notably,
558   these modules are those that use libpwdb and caused difficulties
559   satisfying the build process. (Please submit patches to fix this...;)
560
561 * reomved the union for binary packet conversations from
562   (_pam_types.h).  This is now completely implemented in libpam_client.
563
564 * Andrey's patch for working environment variable handling in
565   sh_secret module.
566
567 * made the libpam_misc conversation function a bit more flexible with
568   respect to binary conversations.
569
570 * added top level define (DEBUG_REL) for compiling in the form of
571   a debugging release.  I use this on a Red Hat 4.2 system with little
572   chance of crashing the system as a whole.  (Andrey has another
573   implementation of this -- with a spec file to match..)
574
575 0.63: Wed Jan 28 22:55:30 PST 1998 Andrew Morgan <morgan@linux.kernel.org>
576
577 * added libpam_client "convention" library.  This makes explicit the
578   use of PAM_BINARY_PROMPT.  It is a first cut, so don't take it too
579   seriously yet.  Comments/suggestions for improvements are very
580   welcome.  Note, this library does not compile by default.  It will
581   be enabled when it is judged stable.  The library comes with two
582   module/agent pairs and can be used with ssh using a patch available
583   from my pre-release directory [where you got this file.]
584
585 * backward compatibility patch for libpam/pam_handlers.c (PAM_IGNORE
586   was working with neither "requistie" nor "required") and a DEBUG'ing
587   compile time bug with pam_dispatch.c (Savochkin Andrey Vladimirovich)
588
589 * minor Makefile change from (Savochkin Andrey Vladimirovich)
590
591 * added pam_afsauth, pam_afspass, pam_restrict, and pam_syslog hooks
592   (Derrick J Brashear)
593
594 * pam_access use of uname(2) problematic (security problem
595   highlighted by Olaf Kirch).
596
597 * pam_listfile went a bit crazy reading group membersips (problem
598   highlighted by Olaf Kirch and patched independently by Cristian
599   Gafton and Savochkin Andrey Vladimirovich)
600
601 * compatibility hooks for solaris and hpux (Derrick J Brashear)
602
603 * 64 bit Linux/alpha bug fixed in pam_rhosts (Andrew D. Isaacson)
604
605 0.62: Wed Jan 14 14:10:55 PST 1998   Andrew Morgan <morgan@linux.kernel.org>
606
607 * Derrick J Brashear's patches: adds the HP stuff missed in the first
608   patch; adds SunOS support; adds support for the Solaris native ld
609   instead of requiring gnu ld.
610
611 * last line of .rhosts file need not contain a newline. (Bug reported by
612   Thompson Freeman.)
613
614 0.61: Thu Jan  8 22:57:44 PST 1998  Andrew Morgan <morgan@linux.kernel.org>
615
616 * complete rewrite of the "control flag" logic.  Formerly, we were
617   limited to four flags: requisite, required, sufficient, optional.
618   We can now use these keywords _and_ a great deal more besides.
619   The extra logic was inspired by Vipin Samar, a preliminary patch was
620   written by Andy Berkheimer, but I "had some ideas of my own" and
621   that's what I've actually included.  The basic idea is to allow the
622   admin to custom build a control flag with a series of token=value
623   pairs inside square brackets.  Eg., '[default=die success=ok]' which
624   is pretty close to a synonym for 'requisite'.  I'll try to document it
625   better in the sys-admin guide but I'm pretty sure it is a change for
626   the better....  If what is in the sys-admin guide is not good enough
627   for you, just take a look at the source for libpam ;^)
628
629 0.59: Thu Jan  8 22:27:22 PST 1998 Andrew Morgan <morgan@linux.kernel.org>
630
631 * better handling of empty lines in .rhosts file.  (Formerly, we asked
632   the nameserver about them!) Fix from Hugh Daschbach.
633
634 * _broke_some_binary_compatibility_ with previous versions to become
635   compliant with X/Open's XSSO spec.  Specifically, this has been
636   by changing the prototype for pam_strerror().
637
638 * altered the convention for the conversation mechanism to agree
639   with that of Sun.  (number of responses 'now=' number of messages
640   with help from Cristian for finding a bug.. Cristian also found a
641   nasty speradic segfault bug -- Thanks!)
642
643 * added NIS+ support to pam_unix_*
644
645 * fixed a "regular file checking" problem with the ~/.rhosts sanity
646   check.  Added "privategroup" option to permit group write permission
647   on the ~/.rhosts file in the case that the group owner has the same
648   name as the authenticating user.  :*) "promiscuous" and "suppress"
649   were not usable!
650
651 * added glibc compatibility to pam_rhosts_auth (protected __USE_MISC
652   with #ifndef since my libc already defines it!).
653
654 * Security fix from Savochkin Andrey Vladimirovich with suggested
655   modification from Olaf Seibert.
656
657 * preC contains mostly code clean-ups and a number of changes to
658   _pam_macros.
659
660 0.58: whenever
661
662 * pam_getenvlist() has a more robust definition (XSSO) than was previously
663   thought.  It would seem that we no longer need pam_misc_copy_env()
664   which was there to provide the robustness that pam_getenvlist()
665   lacked before...
666
667   Accordingly, I have REMOVED the prototype from libpam_misc. (The
668   function, however, will remain in the library as a wrapper for
669   legacy apps, but will likely be removed from libpam_misc-1.0.) PLEASE
670   FIX YOUR APPS *BEFORE* WE GET THERE!
671
672 * Alexy Nogin reported garbage output from pam_env in the case of
673   a non-existent environment variable.
674
675 * 'fixed' pwdb compilation for pam_wheel.  Not very cleanly
676   done.. Mmmm. Should really clean up the entire source tree...
677
678 * added prototypes for mapping functions
679
680                         <**WARNING**>
681
682   various constants have had there names changed.  Numerical values have
683   been retained but be aware some source old modules/applications will
684   need to be fixed before recompilation.
685
686                         </**WARNING**>
687
688 * appended documentation to README for pam_rhosts module (Nicolai
689   Langfeldt).
690
691 * verified X/Open compatibility of header files - note, where we differ
692   it is at the level of compilation warnings and the use of 'const char *'
693   instead of 'char *'.  Previously, Sun(X/open) have revised their spec
694   to be more 'const'-ervative in the light of comments from Linux-PAM
695   development.
696
697 * Ooops! PAM_AUTHTOKEN_REQD should have been PAM_NEW_AUTHTOK_REQD.
698
699         changed: pam_pwdb(pam_unix_acct) (also bug fix for
700         _shadow_acct_mgmt_exp() return value), pam_stress,
701         libpam/pam_dispatch, blank, xsh.
702
703 * New: PAM_AUTHTOK_EXPIRED - password has expired.
704
705 * Ooops! PAM_CRED_ESTABLISH (etc.) should have been PAM_ESTABLISH_CRED
706   etc... (changed - this may break some people's modules - PLEASE TAKE
707   NOTE!)
708         changed: pam_group, pam_mail, blank, xsh; module and appl
709         docs, pam_setcred manual page.
710
711 * renamed internal _pam_handle structure to be pam_handle as per XSSO.
712
713 * added PAM_RADIO_TYPE  (for multiple choice input method).  Also
714   added PAM_BINARY_{MSG,PROMPT} (for interaction out of sight of user
715   - this could be used for RSA type authentication but is currently
716   just there for experimental purposes).  The _BINARY_ types are now
717   usable with hooks in the libpam_misc conversation function. Still
718   have to add PAM_RADIO_TYPE.
719
720 * added pam_access module (Alexei Nogin)
721
722 * added documentation for pam_lastlog.  Also modified the module to
723   not (by default) print "welcome to your new account" when it cannot
724   find a utmp entry for the user (you can turn this on with the
725   "never" argument).
726
727 * small correction to the pam_fail_delay manual page.  Either the appl or
728   the modules header file will prototype this function.
729
730 * added "bigcrypt" (DEC's C2) algorithm(0) to pam_pwdb. (Andy Phillips)
731
732 * *BSD tweaking for various #include's etc. (pam_lastlog, pam_rhosts,
733   pam_wheel, libpam/pam_handlers). (Michael Smith)
734
735 * added configuration directory $SCONFIGED for module specific
736   configuration files.
737
738 * added two new "linked" man pages (pam.conf(8) and pam.d(8))
739
740 * included a reasonable default for /etc/pam.conf (which can be
741   translated to /etc/pam.d/* files with the pam_conv1 binary)
742
743 * fixed the names of the new configuration files in
744    conf/pam_conv1/pam_conv.y
745
746 * fixed make check.
747
748 * pam_lastlog fixed to handle UID in virgin part of /var/log/lastlog
749   (bug report from Ronald Wahl).
750
751 * grammar fix in pam_cracklib
752
753 * segfault avoided in pam_pwdb (getting user). Updating of passwords
754   that are directed to a "new" database are more robust now (bug noted
755   by Michael K. Johnson).  Added "unix" module argument for migrating
756   passwords from another database to /etc/passwd. (documentation
757   updated).  Removed "bad username []" warning for empty passwords -
758   on again if you supply the 'debug' module argument.
759
760 * ctrl-D respected in conversation function (libpam_misc)
761
762 * Removed -DPAM_FAIL_DELAY_ON from top-level Makefile. Nothing in
763   the distribution uses it.  I guess this change happened a while
764   back, basically I'm trying to make the module parts of the
765   distribution "source compatible" with the RFC definition of PAM.
766   This implementation of PAM is a superset of that definition. I have
767   added the following symbols to the Linux-PAM header files:
768
769         PAM_DATA_SILENT (see _pam_types.h)
770         HAVE_PAM_FAIL_DELAY (see _pam_types.h)
771         PAM_DATA_REPLACE (see _pam_modules.h)
772
773   Any module (or application) that wants to utilize these features,
774   should check (#ifdef) for these tokens before using the associated
775   functionality.  (Credit to Michael K. Johnson for pointing out my
776   earlier omission: not documenting this change :*)
777
778 * first stab at making modules more independent of full library
779   source.  Modules converted:
780         pam_deny
781         pam_permit
782         pam_lastlog
783         pam_pwdb
784
785 * pam_env.c: #include <errno.h> added to ease GNU libc use. (Michael
786   K. Johnson)
787
788 * pam_unix_passwd fixes to shadow aging code (Eliot Frank)
789
790 * added README for pam_tally
791
792 0.57: Fri Apr  4 23:00:45 PST 1997  Andrew Morgan <morgan@parc.power.net>
793
794 * added "nodelay" argument to pam_pwdb.  This can be used to turn off
795   the call to pam_fail_delay that takes effect when the user fails to
796   authenticate themself.
797
798 * added "suppress" argument to pam_rhosts_auth module. This will stop
799   printing the "rlogin failure message" when the user does not have a
800   .rhosts file.
801
802 * Extra fixes for FAKEROOT in Makefiles (Savochkin Andrey
803   Vladimirovich)
804
805 * pam_tally added to tree courtesy of Tim Baverstock
806
807 * pam_rhosts_auth was failing to read NFS mounted .rhosts
808   files. (Fixed by Peter Allgeyer). Refixed and further enhanced
809   (netgroups) by Nicolai Langfeldt. [Credit also to G.Wilford for some
810   changes that were not actually included..]
811
812 * optional (#ifdef PAM_READ_BOTH_CONFS) support for parsing of pam.d/
813   AND pam.conf files (Elliot Lee).
814
815 * Added (and signed) Cristian's PGP key. (I've never met him, but I am
816   convinced the key belongs to the guy that is making the PAM rpms and
817   also producing libpwdb. Please note, I will not be signing anyone
818   else's key without a personal introduction..)
819
820 * fixed erroneous syslog warning in pam_listfile (Savochkin Andrey
821   Vladimirovich, whole file reformatted by Cristian)
822
823 * modified pam_securetty to return PAM_IGNORE in the case that the user's
824   name is not known to the system (was previously, PAM_USER_UNKNOWN). The
825   Rationale is that pam_securetty's sole purpose is to prevent superuser
826   login anywhere other than at the console. It is not its concern that the
827   user is unknown - only that they are _not_ root. Returning
828   PAM_IGNORE, however, insures that the pam_securetty can never be used to
829   "authenticate" a non-existent user. (Cristian Gafton with bug report from
830   Roger Hu)
831
832 * Modified pam_nologin to display the no-login message when the user
833   is not known. The return value in this case is still PAM_USER_UNKNOWN.
834   (Bug report from Cristian Gafton)
835
836 * Added NEED_LCKPWD for pam_unix/ This is used to define the locking
837   functions and should only be turned on if you don't have them in
838   your libc.
839
840 * tidied up pam_lastlog and pam_pwdb: removed function that was never used.
841
842 * Note for package maintainers: I have added $(FAKEROOT) to the list of
843   environment variables.  This should help greatly when you build PAM
844   in a subdirectory.  I've gone through the tree and tried to make
845   everything compatible with it.
846
847 * added pam_env (courtesy of Dave Kinchlea)
848
849 * removed pam_passwd+ from the tree.  It has not been maintained in a
850   long time and running a shell script was basically insecure. I've
851   indicated where you can pick up the source if you want it.
852
853 * #define HAVE_PAM_FAIL_DELAY . Applications can conditionally compile
854   with this if they want to see if the facility is available. It is
855   now always available. (corresponding compilation cleanups..)
856
857 * _pam_sanitize() added to pam_misc. It purges the PAM_AUTHTOK and
858   PAM_OLDAUTHTOK items. (calls replaced in pam_auth and pam_password)
859
860 * pam_rhosts now knows about the '+' entry. Since I think this is a
861   dangerous thing, I have required that the sysadmin supply the
862   "promiscuous" flag for it in the corresponding configuration file
863   before it will work.
864
865 * FULL_LINUX_PAM_SOURCE_TREE exported from the top level make file.
866   If you want to build a module, you can test for this to determine if
867   it should take its directions from above or supply default locations
868   for installation. Etc.
869
870 0.56: Sat Feb 15 12:21:01 PST 1997 <morgan@parc.power.net>
871
872 * pam_handlers.c can now interpret the pam.d/ service config tree:
873         - if /etc/pam.d/ exists /etc/pam.conf is IGNORED
874           (otherwise /etc/pam.conf is treated as before)
875         - given /etc/pam.d/
876           . config files are named (in lower case) by service-name
877           . config files have same syntax as /etc/pam.conf except       
878             that the "service-name" field is not present. (there
879             are thus three manditory fields (and arguments are
880             optional):
881
882                 module-type  control-flag  module-path  optional-args...
883
884             )
885
886 * included conf/pam_conv1 for converting pam.conf to a pam.d/ version
887   1.0 directory tree. This program reads a pam.conf file on the
888   standard input stream and creates ./pam.d/ (in the local directory)
889   and fills it with ./pam.d/"service-name" files.
890
891         *> Note: It will fail if ./pam.d/ already exists.
892
893   PLEASE REPORT ANY BUGS WITH THIS CONVERSION PROGRAM... It currently
894   cannot retain comments from the old conf file, so take care to do this
895   by hand. Also, please email me with the fix that makes the
896   shift/reduce conflict go away...
897
898 * Added default module path to libpam for modules (see pam_handlers.c)
899   it makes use of Makfile defined symbol: DEFAULT_MODULE_PATH which is
900   inhereted from the defs/* variable $(SECUREDIR). Removed module
901   paths from the sample pam.conf file as they are no longer needed.
902
903 * pam_pwdb can now verify read protected passwords when it is not run
904   by root.  This is via a helper binary that is setuid root.
905
906 * pam_permit now prompts for a username if it is not already determined
907
908 * pam_rhosts now honors "debug" and no longer hardwire's "root" as the
909   superuser's name.
910
911 * pam_securetty now honors the "debug" flag
912
913 * trouble parsing extra spaces fixed in pam_time and pam_group
914
915 * added Michael K. Johnson's PGP key to the pgp.keys.asc list
916
917 * pam_end->env not being free()'d: fixed
918
919 * manuals relocated to section 3
920
921 * fixed bug in pam_mail.c, and enhanced to recognize '~' as a prefix
922   to indicate the $HOME of the user (courtesy David
923   Kinchlea). *Changed* from a "session" module to an "auth"
924   module. It cannot be used to authenticate a user, but it can be used
925   in setting credentials.
926
927 * fixed a stupid bug in pam_warn.. Only PAM_SERVICE was being read :*(
928
929 * pam_radius rewritten to exclusively make use of libpwdb. (minor fix
930   to Makefile for cleaning up - AGM)
931
932 * pam_limits extended to limit the total number of logins on a system
933   at any given time.
934
935 * libpam and libpam_misc use $(MAJOR_REL) and $(MINOR_REL) to set their
936   version numbers [defined in top level makefile]
937
938 * bugfix in sed command in defs/redhat.defs (AGM's fault)
939
940 * The following was related to a possibility of buffer overruns in
941   the syslogging code: removed fixed length array from syslogging
942   function in the following modules [capitalized the log identifier
943   so the sysadmin can "know" these are fixed on the local system],
944
945         pam_ftp, pam_stress, pam_rootok, pam_securetty,
946         pam_listfile, pam_shells, pam_warn, pam_lastlog
947   and
948         pam_unix_passwd (where it was definitely _not_ exploitable)
949
950 0.55: Sat Jan  4 14:43:02 PST 1997, Andrew Morgan <morgan@parc.power.net>
951
952 * added "requisite" control_flag to /etc/pam.conf syntax. [See
953   Sys. Admin. Guide for explanation] changes to pam_handlers.c
954
955 * completely new handling of garbled pam.conf lines. The modus
956   operandi now is to assume that any errors in the line are minor.
957   Errors of this sort should *most definitely* lead to the module
958   failing, however, just ignoring the line (as was the case
959   previously) can lead to gaping security holes(! Not foreseen by the
960   RFC). The "motivation" for the RFC's comments about ignoring garbled
961   lines is present in spirit in the new code: basically a garbled line
962   is treated like an instance of the pam_deny.so module.
963   changes to pam_handlers.c and pam_dispatch.c .
964
965 * patched libpam, to (a) call _pam_init_handlers from pam_start() and
966   (b) to log a text error if there are no modules defined for a given
967   service when a call to a module is requested. [pam_start() and
968   pam_dispatch() were changed].
969
970 * patched pam_securetty to deal with "/dev/" prefix on PAM_TTY item.
971
972 * reorganized the modules/Makefile to include *ALL* modules. It is now
973   the responsibility of the modules themselves to test whether they can
974   be compiled locally or not.
975
976 * modified pam_group to add to the getgroups() list rather than overwrite
977   it. [In the case of "HAVE_LIBPWDB" we use the pwdb_..() calls to
978   translate the group names.]. Module now pays attention to
979   PAM_CRED_.. flag(!)
980
981 * identified and removed bugs in field reading code of pam_time and
982   (thus) pam_group.
983
984 * Cristian's patches to pam_listfile module, corresponding change to
985   documentation.
986
987 * I've discovered &ero; for sgml!
988   Added pam_time documentation to the admin guide.
989
990 * added manual pages: pam.8, pam_start.2(=pam_end.2),
991   pam_authenticate.2, pam_setcred.2, pam_strerror.2,
992   pam_open_session.2(=pam_close_session.2) and pam_chauthtok.2 .
993
994 * added new modules:
995
996         - pam_mail (tells the user if they have any new mail
997           and sets their MAIL env variable)
998         - pam_lastlog (reports on the last time this user called
999           this module)
1000
1001 * new module hooks provided.
1002
1003 * added a timeout feature to the conversation function in
1004   libpam_misc. Documented it in the application developers' guide.
1005
1006 * fixed bug in pam_misc_paste_env() function..
1007
1008 * slight modifications to wheel and rhosts writeup.
1009
1010 * more security issues added to module and application guides.
1011
1012 --
1013 Things present but not mentioned in previous release (sorry)
1014
1015 * pam_pwdb module now resets the "last_change" entry before updating a
1016   password.
1017 --
1018
1019 Sat Nov 30 19:30:20 PST 1996, Andrew Morgan <morgan@parc.power.net>
1020
1021 * added environment handling to libpam. involved change to _pam_types.h
1022   also added supplementary functions to libpam_misc
1023
1024 * added pam_radius - Cristian
1025
1026 * slight speed up for pam_rhosts
1027
1028 * significantly enhanced sys-admin documentation (8 p -> 41 p in
1029   PostScript). Added to other documentation too.  Mostly the changes
1030   in the other docs concern the new PAM-environment support, there is
1031   also some coverage of libpam_misc in the App. Developers' guide.
1032
1033 * Cristian's patches to pam_limits and pam_pwdb. Fixing bugs. (MORE added)
1034   
1035 * adopted Cristian's _pam_macros.h file to help with common macros and
1036   debugging stuff, gone through tree tidying up debugging lines to use
1037   this [not complete].
1038
1039         - for consistency replaced DROP() with _pam_drop()
1040
1041 * commented memory debugging in top level makefile
1042
1043 * added the following modules
1044
1045     - pam_warn  log information to syslog(3) about service application
1046     - pam_ftp   if user is 'ftp' then set PAM_RUSER/PAM_RHOST with password
1047     (comment about nologin added to last release's notes)
1048
1049 * modified the pam_listfile module. It now declares a meaningful static
1050   structure name.
1051
1052 Sun Nov 10 13:26:39 PST 1996, Andrew Morgan <morgan@parc.power.net>
1053
1054                 **PLEASE *RE*AMEND YOUR PERSONAL LINKS**
1055
1056   ------->  http://parc.power.net/morgan/Linux-PAM/index.html  <-------
1057
1058                 **PLEASE *RE*AMEND YOUR PERSONAL LINKS**
1059
1060 A brief summary of what has changed:
1061
1062 * many modules have been modified to accomodate fixing the pam_get_user()
1063   change. Please take note if you have a module in this distribution.
1064
1065 * pam_unix is now the pam_unix that Red Hat has been using and which
1066   should be fairly well debugged.
1067
1068    - I've added some #ifdef's to make it compile for me, and also
1069      updated it with respect to the libpam-0.53, so have a look at the
1070      .../modules/pam_unix/Makefile to enable cracklib and shadow features
1071
1072         ** BECAUSE OF THIS, I cannot guarantee this code works as it **
1073         ** did for Red Hat. Please test and report any problems.     **
1074
1075 * the pam_unix of .52 (renamed to pam_pwdb) has been enhanced and made
1076   more flexible with by implementing it with respect to the new
1077   "Password Database Library" see
1078
1079         http://parc.power.net/morgan/libpwdb/index.html
1080
1081   modules included in this release that require this library to
1082   function are the following:
1083
1084         - pam_pwdb (ne pam_unix-0.52 + some enhancements)
1085         - pam_wheel
1086         - pam_limits
1087         - pam_nologin
1088
1089 * Added some optional code for memory debugging. In order to support
1090   this you have to enable MEMORY_DEBUG in the top level makefile and
1091   also #define MEMORY_DEBUG in your applications when they are compiled.
1092   The extra code resides in libpam (compiled if MEMORY_DEBUG is defined)
1093   and the macros for malloc etc. are to be found at the end of
1094   _pam_types.h
1095
1096 * used above code to locate two memory leaks in pam_unix module and two
1097   in libpam (pam_handlers.h)
1098
1099 * pam_get_user() now sets the PAM_USER item. After reading the Sun
1100   manual page again, it was clear that it should do this. Various
1101   modules have been assuming this and now I have modified most of them
1102   to account for this change. Additionally, pam_get_user() is now
1103   located in the module include file; modules are supposed to be the
1104   ones that use it(!) [Note, this is explicitly contrary to the Sun
1105   manual page, but in the spirit of the Linux distribution to date.]
1106
1107 * replaced -D"LINUX" with -D"LINUX_PAM" as this is more explicit and less
1108   likely to be confused with -D"linux".
1109   Also, modified the libpam #include files to behave more like the Sun
1110   ones #ifndef LINUX_PAM.
1111
1112 * removed <bf/ .. / from documentation titles. This was not giving
1113   politically correct html..
1114  
1115 ----- My vvvvvvvvvvvvvvvvvvv was a long time ago ;*] -----
1116
1117 Wed Sep  4 23:57:19 PDT 1996 (Andrew Morgan <morgan@physics.ucla.edu>
1118
1119 0. Before I begin, Linux-PAM has a new primary distribution site (kindly
1120 donated by Power Net Inc., Los Angeles)
1121
1122                 **PLEASE AMMEND YOUR PERSONAL LINKS**
1123
1124       ------->  http://www.power.net/morgan/Linux-PAM  <-------
1125
1126                 **PLEASE AMMEND YOUR PERSONAL LINKS**
1127
1128 1. I'm hoping to make the next release a bug-fix release... So please find
1129    all the bugs(! ;^)
1130
1131 2. here are the changes for .52:
1132
1133 * minor changes to module documentation [Incidently, it is now
1134   available on-line from the WWW page above]. More changes to follow in
1135   the next two releases. PLEASE EMAIL me or the list if there is
1136   anything that isn't clear!
1137
1138 * completely changed the unix module. Now a single module for all four
1139   management groups (this meant that I could define all functions as
1140   static that were not part of the pam_sm_... scheme. AGM)
1141
1142   - Shadow support added
1143 PASSWD  - Elliot's account management included, and enhanced by Cristian Gafton.
1144   - MD5 password support added by Cristian Gafton.
1145   - maxtries for authentication now enforced.
1146   - Password changing function in pam_unix now works!
1147     Although obviously, I'm not going to *guarantee* it ;^) .
1148   - stole Marek's locking code from the Red Hat unix module.
1149     [ If you like you can #ifdef it in or out ... ]
1150
1151     You can configure the module more from its Makefile in
1152     0.52/modules/pam_unix/
1153
1154     If you are nervous that it will destroy your /etc/passwd or shadow
1155     files then EDIT the 0.52/modules/pam_unix/pam_unix_pass.-c file.
1156     Here is the warning comment from this file...
1157
1158 -------------8<-----------------
1159 /*                           <WARNING>
1160  *
1161  * Uncomment the following #define if you are paranoid, and do not
1162  * want to risk losing your /etc/passwd or shadow files.
1163  * It works for me (AGM) but there are no guarantees.
1164  *
1165  *                          </WARNING>
1166  */
1167 /* #define TMP__FILE */
1168 ------------->8-----------------
1169
1170   *** If anyone has any trouble, please *say*. Your problem will be
1171       fixed in the next release. Also please feel free to scour the
1172       code for race conditions etc... 
1173
1174 [* The above change requires that you purge your /usr/lib/security
1175    directory of the old pam_unix_XXX.so modules: they will NOT be deleted
1176    with a 'make remove'.]
1177
1178 * the prototype for the cleanup function supplied to pam_set_data used
1179   to return "int". According to Sun it should be "void". CHANGED.
1180
1181 * added some definitions for the 'error_status' mask values that are
1182   passed to the cleanup function associated with each
1183   module-data-item. These numbers were needed to keep up with changing
1184   a data item (see for example the code in pam_unix/support.-c that
1185   manages the maximum number of retries so far). Will see what Sun says
1186   (current indications are positive); this may be undone before 1.0 is
1187   released.  Here are the definitions (from pam_modules.h).
1188
1189 #define PAM_DATA_SILENT    0x40000000     /* used to suppress messages... */
1190 #define PAM_DATA_REPLACE   0x20000000     /* used when replacing a data item */
1191
1192 * Changed the .../conf/pam.conf file. It now points to the new
1193   pam_unix module for 'su' and 'passwd' [can get these as SimpleApps --
1194   I use them for testing. A more extensive selection of applications is
1195   available from Red Hat...]
1196
1197 * corrected a bug in pam_dispatch. Basically, the problem was that if
1198   all the modules were "sufficient" then the return value for this
1199   function was never set. The net effect was that _pam_dispatch_aux
1200   returned success when all the sufficient modules failed. :^( I think
1201   this is the correct fix to a problem that the Red Hat folks had
1202   found...
1203
1204 sopwith* Removed advisory locking from libpam (thanks for the POSIX patch
1205   goes to Josh Wilmes's, my apologies for not using it in the
1206   end.). Advisory locking did not seem sufficiently secure for libpam.
1207   Thanks to Werner Almesberger for identifying the corresponding "denial
1208   of service attack". :*(
1209
1210 * related to fix, have introduced a lock file /var/lock/subsys/PAM
1211   that can be used to indicate the system should pay attention to
1212   advisory locking on /etc/pam.conf file. To implement this you need to
1213   define PAM_LOCKING though. (see .52/libpam)
1214
1215 * modified pam_fail_delay() function. Couldn't find the "not working"
1216   problem indicated by Michael, but modified it to do pseudo-random
1217   delays based on the values indicated by pam_fail_delay() -- the
1218   function "that may eventually go away"... Although Sun is warming to
1219   the idea.
1220
1221 * new modules include:
1222
1223         pam_shells    - authentication for users with a shell listed in
1224                         /etc/shells. Erik Troan <ewt@redhat.com>
1225
1226         pam_listfile  - authentication based on the contents of files.
1227                         Set to be more general than the above in the
1228                         future. UNTESTED. Elliot Lee <@redhat.com>
1229                         [Note, this module compiles with a non-trivial
1230                         warning: AGM]
1231
1232 Thu Aug  8 22:32:15 PDT 1996 (Andrew Morgan <morgan@physics.ucla.edu>)
1233
1234 * modified makefiles to take more of their installation instructions
1235   from the top level makefile. Desired for integration into the Debian
1236   distribution, and generally a good idea.
1237
1238 * fixed memory arithmetic in pam_handlers
1239   -- still need to track down why failure to load modules can lead to
1240   authentication succeding..
1241
1242 * added tags for new modules (smartcards from Alex -- just a promise
1243   at this stage) and a new module from Elliot Lee; pam_securetty
1244
1245 * I have not had time to smooth out the wrinkles with it, but Alex's
1246   pam_unix modifications are provided in pam_unix-alex (in the modules
1247   directory) they will not be compiled by 'make all' and I can't even
1248   say if they do compile... I will try to look at them for .52 but, in
1249   the mean time please feel free to study/fix/discuss what is there.
1250
1251 * pam_rhosts module. Removed code for manually setting the ruser
1252   etc. This was not very secure.
1253
1254 * [remade .ps docs to be in letter format -- my printer complains
1255   about a4]
1256
1257 Sunday July, 7 12:45:00 PST 1996 (Andrew Morgan <morgan@physics.ucla.edu>)
1258
1259 * No longer accompanying the Linux-PAM release with apps installed.
1260   [Will provide what was here in a separate package.. (soon)
1261 lib   Also see http://www.redhat.com/pam for some more (in .rpm form...)]
1262
1263 * renamed libmisc to libpam_misc. It is currently configured to only compile
1264   the static library. For some strange reason (perhaps someone can
1265   investigate) my Linux 2.0.0 kernel with RedHat 3.0.3 system
1266   segfaults when I compile it to be a dynamic library. The segfault
1267   seems to be inside the call to the ** dl_XXX ** function...!?
1268
1269   There is a simple flag in the libpam_misc/Makefile to turn on dynamic
1270   compiles.
1271
1272 * Added a little unofficial code for delay support in libpam (will probably
1273   disappear later..) There is some documentation for it in the pam_modules
1274   doc now. That will obviously go too.
1275
1276 * rewritten pam_time to use *logic* to specify the stringing together of
1277   users/times/terminals etc.. (what was there before was superficially
1278   logical but basically un-predictable!)
1279
1280 * added pam_group. Its syntax is almost identical to pam_time but it
1281   has another field added; a list of groups to make the user a member
1282   of if they pass the previous tests. It seems to not co-exist too well
1283   with the groups in the /etc/group but I hope to have that fixed by
1284   the next release...
1285
1286 * minor re-formatting of pam_modules documentation
1287
1288 * removed ...// since it wasn't being used and didn't look like it
1289   would be!
1290
1291 GCCSunday 23 22:35:00 PST 1996   (Andrew Morgan <morgan@physics.ucla.edu>)
1292
1293 * The major change is the addition of a new module: pam_time for
1294   restricting access on terminals at given times for indicated users
1295   it comes with its own configuration file /etc/security/time.conf
1296   and the sample file simply restricts 'you' from satisfying the blank
1297   application if they try to use blank from any tty*
1298
1299 * Small changes include
1300 - altered pam.conf to demonstrate above new module (try typing username: you)
1301 - very minor changes to the docs (pam_appl and pam_modules)
1302
1303 Saturday June 2 01:40:00 PST 1996  (Andrew Morgan <morgan@physics.ucla.edu>)
1304
1305 *** PLEASE READ THE README, it has changed ***
1306
1307 * NOTE, 'su' exhibits a "system error", when static linking is
1308   used. This is because the pam_unix_... module currently only has
1309   partial static linking support. This is likely to change on Monday
1310   June 3, when Alex makes his latest version availible. I will include
1311   the updated module in next release.
1312
1313 changes for .42:
1314
1315 * modified the way in which libpam/pam_modules.h defines prototypes for
1316   the pam_sm_ functions. Now the module must declare which functions it
1317   is to provide *before* the #include <security/pam_modules.h> line.
1318   (for contrasting examples, see the pam_deny and pam_rootok modules)
1319   This removed the ugly hack of defining functions that are never called
1320   to overcome  warnings... This seems much tidier.
1321 insterted* updated the TODO list. (changed mailing list address)
1322 * updated README in .../modules to reflect modifications to static
1323   compliation protocol
1324 * modified the pam_modules documentation to describe this.
1325 * corrected last argument of pam_get_item( ... ) in
1326   pam_appl/modules.sgml, to "const void **".
1327 * altered GNU GPL's in the documentation, and various other parts of
1328   the distribution. *Please check* that any code you are responsible for
1329   is corrected.
1330 * Added ./Copyright (please check that it is acceptable)
1331 * updated ./README to make current and indicate the new mailing list
1332   address
1333 * have completely rewritten pam_filter. It now runs modular filter
1334   executables (stored in /usr/sbin/pam_filter/) This should make it
1335   trivial for others to write their own filters.. If you want yours
1336   included in the distribution please email the list/me.
1337 * changes to libpam; there was a silly bug with multiple arguments on a
1338   pam.conf line that was broken with a '\<LF>'.
1339 * 'su' rearranged code (to make better use of PAM)
1340   *Also* now uses POSIX signals--this should help the Alpha port.
1341 * 'passwd' now uses getlogin() to determine who's passwords to change.
1342
1343 Sunday May 26 9:00:00 PST 1996 (Andrew Morgan <morgan@physics.ucla.edu>)
1344
1345 * fixed module makefiles to create needed dynamic/static subdirectories
1346
1347 Saturday May 25 20:30:27.8 PST 1996 (Andrew Morgan <morgan@physics.ucla.edu>)
1348
1349 * LOTS has changed regarding how the modules/libpam are built.
1350 *  Michael's mostly complete changes for static support--see below
1351   (Andrew got a little carried away and automated the static linking
1352   of modules---bugs are likely mine ;( )
1353 * Thanks mostly to Michael, libpam now compiles without a single warning :^]
1354 * made static modules/library optional.
1355 CFLAGS* added 'make sterile' to top level makefile. This does extraclean and remove
1356 * added Michael and Joseph to documentation credits (and a subsection for
1357   future documentation of static module support in pam_modules.sgml)
1358 * libpam; many changes to makefiles and also automated the inclusion of
1359   static module objects in pam_static.c
1360 * modified modules for automated static/dynamic support. Added static & 
1361   dynamic subdirectories, as instructed by Michael
1362 * removed an annoying syslog message from pam_filter: "parent exited.."
1363 * updated todo list (anyone know anything about svgalib/X? we probably should
1364   have some support for these...)
1365
1366 Friday May 24 16:30:15 EDT 1996 (Michael K. Johnson <johnsonm@redhat.com>)
1367
1368 * Added first (incomplete) cut at static support.
1369   This includes:
1370    . changes in libpam, including a new file, pam_static.c
1371    . changes to modules including exporting struct of function pointers
1372    . static and dynamic linking can be combined
1373    . right now, the only working combinations are just dynamic
1374      linking and dynamic libpam.so with static modules linked
1375      into libpam.so.  That's on the list of things to fix...
1376    . modules are built differently depending on whether they
1377      are static or dynamic.  Therefore, there are two directories
1378      under each module directory, one for static, and one for
1379      dynamic modules.
1380 * Fixed random brokenness in the Makefiles.  [ foo -nt bar ] is
1381   rather redundant in a makefile, for instance.  Also, passing
1382    on the command line is broken because it cannot be
1383   overridden in any way (even adding important parts) in lower-level
1384   makefiles.
1385 * Unfortunately, fixing some of the brokenness meant that I used
1386   GNU-specific stuff.  However, I *think* that there was GNU-specific
1387   stuff already.  And I think that we should just use the GNU
1388   extensions, because any platform that GNU make doesn't port to
1389   easily will be hard to port to anyway.  It also won't be likely
1390 passwd  to handle autoconf, which was Ted's suggestion for getting
1391   around limitations in standard make...
1392   For now, I suggest that we just use some simple GNU-specific
1393   extensions.
1394
1395 Monday May 20 22:00:00 PST 1996 (Andrew Morgan <morgan@physics.ucla.edu>)
1396
1397 * added some text to pam_modules.sgml
1398 * corrected Marek's name in all documentation
1399 * made pam_stress conform to chauthtok conventions -- ie can now request
1400   old password before proceeding.
1401 * included Alex's latest unix module
1402 * included Al's + password strength checking module
1403 * included pam_rootok module
1404 * fixed too many bugs in libpam.. all subtly related to the argument lists
1405   or use of syslog. Added more debugging lines here too.
1406 * fixed the pam.conf file
1407 * deleted pam_test module. It is pretty old and basically superceeded
1408   by pam_stress
1409
1410 Friday May 9 1:00:00 PST 1996 (Andrew Morgan <morgan@physics.ucla.edu>)
1411
1412 * updated documentaion, added Al Longyear to credits and corrected the
1413   spelling of Jeff's name(!). Most changes to pam.sgml (even added a figure!)
1414 * new module pam_rhosts_auth (from Al Longyear)
1415 * new apps rlogind and ftpd (a patch) from Al.
1416 * modified 'passwd' to not call pam_authenticate (note, none of the
1417   modules respect this convention yet!)
1418 * fixed bug in libpam that caused trouble if the last line of a
1419   pam.conf file ends with a module name and no newline character
1420 * also made more compatable with documentation, in that bad lines in
1421   pam.conf are now ignored rather than causing libpam to return an
1422   error to the app.
1423 * libpam now overwrites the AUTHTOKs when returning from
1424   pam_authenticate and pam_chauthtok calls (as per Sun/RFC too)
1425 * libpam is now installed as libpam.so.XXX in a way that ldconfig can
1426   handle!
1427
1428
1429 Wednesday May 1 22:00:00 PST 1996 (Andrew Morgan <morgan@physics.ucla.edu>)
1430
1431 * removed .../test directory, use .../examples from now on.
1432 * added .../apps directory for fully functional applications
1433   - the apps directory contains directories that actually contain the apps.
1434     the idea is to make application compilation conditional on the presence
1435     of the directory. Note, there are entries in the Makefile for
1436     'login' and 'ftpd' that are ready for installation... Email me if
1437     you want to reserve a directory name for an application you are
1438     working on...
1439 * similar changes to .../modules makefile [entries for pam_skey and
1440   pam_kerberos created---awaiting the directories.] Email me if you
1441   want to register another module...
1442 * minor changes to docs.. Not really worth reprinting them quite yet!
1443   [save the trees]
1444 * added misc_conv to libmisc. it is a generic conversation function
1445   for text based applications. [would be nice to see someone create
1446   an Xlib and/or svgalib version]
1447 * fixed ctrl-z/c bug with pam_filter module [try xsh with the default
1448   pam.conf file]
1449 * added 'required' argument to 'pam_stress' module.
1450 * added a TODO list... other suggestions to the list please.
1451
1452 Saturday April 7 00:00:00 PST 1996 ( Andrew Morgan <morgan@physics.ucla.edu> )
1453
1454 * Alex and Marek please note I have altered _pam_auth_unix a little, to
1455   make it get the passwords with the "proper method" (and also fixed it
1456   to not have as many compiler warnings)
1457 * updated the conf/pam.conf file
1458 * added new example application examples/xsh.c (like blank but invokes
1459   /bin/sh)
1460 * Marc's patches for examples/blank.c (and AGM's too)
1461 * fixed stacking of modules in libpam/pam_handlers.c
1462 * fixed RESETing in libpam/pam_item.c
1463 * added new module modules/pam_filter/ to demonstrate the possibility
1464   of inserting an arbitrary filter between the terminal and the
1465   application that could do customized logging etc... (see use of
1466   bin/xsh as defined in conf/pam.conf)
1467
1468
1469 Saturday March 16 19:00:00 PST 1996 ( Andrew Morgan <morgan@physics.ucla.edu> )
1470
1471 These notes are for 0.3 I don't think I've left anything important
1472 out, but I will use emacs 'C-x v a' next time! (Thanks Jeff)
1473
1474         * not much has changed with the functionality of the Linux-PAM lib
1475           .../libpam
1476                 - pam_password calls module twice with different arguments
1477                 - added const to some of the function arguments
1478                 - added PAM_MAX_MES_ to <security/_pam_types.h>
1479                 - was a lot over zealous about purging old passwords...
1480                   I have removed much of this from source to make it
1481                   more compatible with SUN.
1482                 - moved some PAM_... tokens to pam_modules.h from _pam_types.h
1483                   (no-one should notice)
1484
1485         * added three modules: pam_permit pam_deny pam_stress
1486           no prizes for guessing what the first two do. The third is
1487           a reasonably complete (functional) module. Is intended for testing
1488           applications with.
1489
1490         * fixed a few pieces of examples/blank.c so that it works (with
1491           pam_stress)
1492
1493         * ammended the documentation. Looking better, but suggestions/comments
1494           very welcome!
1495
1496 Sunday March 10 10:50:00 PST 1996 ( Andrew Morgan <morgan@physics.ucla.edu> )
1497
1498 These notes are for Linux-PAM release 0.21.  They cover what's changed
1499 since I relased 0.2.
1500
1501         * am now using RCS
1502         * substantially changed ./README
1503         * fixed bug reading \\\n in pam.conf file
1504         * small changes to documentation
1505         * added `blank' application to ./examples (could be viewed as
1506           a `Linux-PAM aware' application template.)
1507         * oops. now including pam_passwd.o and pam_session.o in pamlib.so
1508         * compute md5 checksums for all the source when making a release
1509             - added `make check' and `make RCScheck' to compute md5 checksums
1510         * create a second tar file with all the RCS files in.
1511         * removed the .html and .txt docs, supplying sgml sources instead.
1512             - see README for info on where to get .ps files
1513
1514 Thursday March 6 0:44:?? PST 1996 ( Andrew Morgan <morgan@physics.ucla.edu> )
1515
1516 These notes are for Linux-PAM release 0.2.  They cover what's changed
1517 since Marc Ewing relased 0.1.
1518
1519 **** Please note. All of the directories in this release have been modified
1520 **** slightly to conform to the new pamlib. A couple of new directories have
1521 **** been added. As well as some documentation. If some of your code
1522 **** was in the previous release. Feel free to update it, but please
1523 **** try to conform to the new headers and Makefiles.
1524
1525 * Andrew Morgan (morgan@physics.ucla.edu) is making this release
1526  availible, Marc has been busy...!
1527
1528 * Marc's pam-0.1/lib has been (quietly) enhanced and integrated into
1529  Alex Yurie's collected tree of library and module code
1530  (linux-pam.prop.1.tar.gz). Most of the changes are to do with error
1531  checking. Some more robustness in the reading of the pam.conf file
1532  and the addition of the pam_get_user() function.
1533
1534 * The pam_*.h files have been reorganized to logically enforce the
1535  separation of modules from applications. [Don't panic! Apart from
1536  changing references of the form
1537
1538         #include "pam_appl.h"
1539
1540  to
1541
1542         #include <security/pam_appl.h>
1543
1544  The reorganization should be backwardly compatable (ie. a module
1545  written for SUN will be as compatable as it was before with the
1546  previous version ;)~ ]
1547
1548  (All of the source in this tree now conforms to this scheme...)
1549
1550  The new reorganization means that modules can be compiled with a
1551  single header, <security/pam_modules.h>, and applications with
1552  <security/pam_appl.h>.
1553
1554 * I have tried to remove all the compiler warnings from the updated
1555  "pamlib/*.c" files. On my system, (with a slightly modified <dlfcn.h>
1556  email me if it interests you..) there are only two warnings that
1557  remain: they are that ansi does not permit void --> fn ptr
1558  assignment. K&Rv2 doesn't mention this....? As a matter of principle,
1559  if anyone knows how to get rid of that warning... please
1560  tell. Thanks! "-pedantic"
1561
1562 * you can "make all" as a plain user, but
1563
1564 * to "make install" you must be root. The include files are placed in
1565  /usr/include/security. The libpam.so library is installed in /usr/lib
1566  and the modules in /usr/lib/security. The two test binaries
1567  are installed in the Linux-PAM-0.2/bin directory and a chance is given to
1568  replace your /etc/pam.conf file with the one in Linux-PAM-0.2/conf.
1569
1570 * I have included some documentation (pretty preliminary at the
1571 moment) which I have been working on in .../doc .
1572
1573 I have had a little trouble with the modules, but atleast there are no
1574 segfaults! Please try it out and discuss your results... I actually
1575 hope it all works for you. But, Email any bugs/suggestions to the
1576 Linux-PAM list: linux-pam@mit.edu .....
1577
1578 Regards,
1579
1580 Andrew Morgan
1581 (morgan@physics.ucla.edu)
1582
1583
1584 Sat Feb 17 17:30:24 EST 1996 (Alexander O. Yuriev alex@bach.cis.temple.edu)
1585
1586         * conf directory created with example of pam_conf
1587         * stable code from pam_unix is added to modules/pam_unix
1588         * test/test.c now requests username and password and attempts
1589           to perform authentication
1590