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: 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 - 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 Web page: