
				Authen::PAM 

				Version 0.14

				2003-Jan-22


	Copyright (c) 1998-2003 Nikolay Pelov. All rights reserved.
	This program is free software; you can redistribute it and/or
	modify it under the same terms as Perl itself.


DESCRIPTION
===========

This module provides a Perl interface to the PAM library.

Home site: <http://www.cs.kuleuven.ac.be/~pelov/pam/>


PREREQUISITES
=============

Before you can build Authen::PAM you need to have the following
things installed on your system:

  * Perl, at least version 5.003_23
  * This module is known to work with the following or newer 
    implementations of the PAM library:
    - Linux-PAM  <http://www.kernel.org/pub/linux/libs/pam/>
    - Solaris 2.6
    - FreeBSD 3.1
    - OpenPAM <http://openpam.sourceforge.net/>
    - HP-UX 11.0
    - Darwin 6.0 and Mac OS X 10.2


BUILDING AND INSTALLING THE MODULE
==================================

Assuming you have met all the prerequisites, you can built the module 
using the standard sequence of commands:

    perl Makefile.PL
    make
    make test
    make install

By default the module is build using the compiler and options used to build
the perl executable itself. If you want to change the C compiler then set
the CC environment variable, for example like this:

    CC=gcc perl Makefile.PL

However, besides changing the compiler, it is still not possible to change
any other options (for example CFLAGS). If you want to do this then you
should edit by hand the generated Makefile.

If you have any problems in building and installing the module then you
should first check on the home page of the Authen::PAM module at address
http://www.cs.kuleuven.ac.be/~pelov/pam/ for the latest development version
(if any) which could possibly fix your problems. If none is available or the
problems remain then you can write me a mail which includes the following
information:
  * the version of your unix - `uname -a'
  * the version of the perl - `perl -v'
  * if you are on linux:
    - the name and version of the distribution you are using
    - the version of the pam - `ls /lib/libpam.so*' or `ls /usr/lib/libpam.so*'
  * the description of the "login" service from your pam configuration -
    usually found in `/etc/pam.conf' file or in the file `/etc/pam.d/login'
  * the output of the `perl Makefile.PL', `make' and `make test'
  * any relevant messages produced by the syslogd daemon -
    usually found in `/var/log/messages'
  * if the problem is in a perl script which uses the Authen::PAM module then
    the source of this program (even if it is a slight modification of some
    of the source code provided with this module)


KNOWN PROBLEMS
==============

  Missing PAM header files
  ------------------------

  I know that this is trivial, but some people actually report this.
  If you get an error like
	PAM.xs:11: security/pam_appl.h: No such file or directory
  this means that either you don't have the PAM library installed on
  your system or at least the PAM header files are missing. If your
  distribution provides the PAM library as packages then you should
  check that you have also installed the pam-dev or pam-devel package.


  FreeBSD 4.x
  -----------
  Several people have reported the following error during 'make test':
    not ok 10 (28 - Module is unknown)
  I've tracked down the problem to the dynamic loader of FreeBSD not
  exporting some symbols in dlopen()'d modules. I've submitted a bug 
  report - http://www.freebsd.org/cgi/query-pr.cgi?pr=25059
  It seems that this bug has been fixed already and starting
  from the next release of FreeBSD (probably 4.6) the module should
  work again.


  Solaris 2.8
  -----------
  Some users are reporting the following error during 'make test':
    Segmentation Fault - core dumped
    make: *** [test_dynamic] Error 139
  The problem seems to be related with the use of Kerberos
  authentication (pam_krb5 or pam_krb54). At this moment I don't have
  any explanation for it.


  Login Restrictions
  ------------------
  Most of the current configurations of the 'login' service include a
  module 'pam_securetty' or 'pam_access' which restrict the login of 
  some users (especially root) depending on the tty or the host name
  they are logging from. The configuration files of these two modules
  are /etc/securetty and  /etc/security/access.conf respectively.
  So if you are running 'make test' and get an error 
  '(Authentication failure)' on test 10 then this might be due to
  login restrictions of PAM.


  RedHat 6.1
  ----------
  Many users are reporting the following problem when running 'make test'
  on a RedHat 6.1 system:

    -- Now you will be prompted to enter your unix password. On some systems
    -- this test will succeed only if you are running as 'root'.
    Password:
    not ok 10 (Authentication failure)

  The problem appears only when you use the 'su' command to change to another
  user (including root).  If you login as 'root' or another user then 
  everything works ok.


  Buggy glibc2
  ------------
  Some of the first versions of the glibc2 libraries have a bug in the
  dlopen function which will prevent this module from working. If you are
  using an original RedHat 5.0 distribution then you probably have this
  problem.
  I know that the bug is fixed in at least version 2.0.7-6 of the glibc2
  library.


  Bug in the Solaris 2.6 PAM library
  ----------------------------------
  There is a known bug in the Solaris 2.6 PAM library for which I have
  implemented a workaround. This bug is fixed in Solaris 2.7.
  The name and the version of your OS is determined by looking at the
  variables 'osname' and 'osvers' from the perl 'Config' module and if they 
  match 'solaris' and '2.6' then the workaround is activated. 
  To see the values of these variables you can use `perl -V:osname -V:osvers'.

  If you are building this module on a different version of Solaris (e.g 2.7)
  and you are planning to use it on Solaris 2.6 or if you are working on
  Solaris 2.6 and your perl is build on a different version of Solaris
  (and hence the value of 'osvers' is not '2.6') then you must activate the 
  workaround manually by running

     perl Makefile.PL -DSTATIC_CONV_FUNC


  Perl version 5.004_03
  ---------------------
  If you are using perl, version 5.004_03 then you will probably see the
  following error during the compilation of PAM.xs file to PAM.c:

     PAM.c:NNN: invalid format `#line' directive.

  This is caused by a bug in the perl xsubpp compiler.
  The simplest way to solve this problem is to open the file PAM.c,
  delete the line with the error and run make again.

  The other solution is to patch your xsubpp compiler. Go to your perl
  directory (usually /usr/lib/perl5 or /usr/local/lib/perl5) and apply the
  patch xsubpp-1.9504.patch.


AUTHOR
======

  Nikolay Pelov <pelov@cs.kuleuven.ac.be>

  Web page: <http://www.cs.kuleuven.ac.be/~pelov/pam/>

