Authen::PAM
Version 0.13
2002-Feb-25
Copyright (c) 1998-2002 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:
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
- Solaris 2.6
- FreeBSD 3.1
- OpenPAM
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 that only the 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
On the above URL there are also instructions on how to reproduce the
problem. Unless this is being fixed then it is very likely that the
Authen::PAM module will not be able to work there.
Lobby the BSD developers.
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
Web page: