Difference between revisions of "PAM Library"

From CBLFS
Jump to navigationJump to search
(I added the package description from BLFS along with the "contents" section.)
Line 2: Line 2:
 
|-
 
|-
 
!Download Source:
 
!Download Source:
| ftp://ftp.kernel.org/pub/linux/libs/pam/pre/library/Linux-PAM-0.99.6.3.tar.bz2
+
| ftp://ftp.kernel.org/pub/linux/libs/pam/pre/library/Linux-PAM-{{PAM_Library-Version}}.tar.bz2
 
|-
 
|-
 
!Download (To build pam_console):
 
!Download (To build pam_console):
Line 37: Line 37:
 
  ./configure --libdir=/usr/lib --sbindir=/lib/security \
 
  ./configure --libdir=/usr/lib --sbindir=/lib/security \
 
             --enable-securedir=/lib/security \
 
             --enable-securedir=/lib/security \
             --enable-docdir=/usr/share/doc/Linux-PAM-0.99.6.3 \
+
             --enable-docdir=/usr/share/doc/Linux-PAM-{{PAM_Library-Version}} \
 
             --enable-read-both-confs &&
 
             --enable-read-both-confs &&
 
  make
 
  make
Line 47: Line 47:
 
  mv -v /lib/security/pam_tally /sbin &&
 
  mv -v /lib/security/pam_tally /sbin &&
 
  mv -v /usr/lib/libpam*.so.0* /lib &&
 
  mv -v /usr/lib/libpam*.so.0* /lib &&
  ln -sfv ../../lib/libpam.so.0.81.5 /usr/lib/libpam.so &&
+
LIBNAME=$(cat libpam/libpam.la | grep library_names | cut -f2 -d"'" | cut -f1 -d" ")
  ln -sfv ../../lib/libpamc.so.0.81.0 /usr/lib/libpamc.so &&
+
  ln -sf ../../lib/$LIBNAME /usr/lib/libpam.so
  ln -sfv ../../lib/libpam_misc.so.0.81.2 /usr/lib/libpam_misc.so
+
LIBNAME=$(cat libpamc/libpamc.la | grep library_names | cut -f2 -d"'" | cut -f1 -d" ")
 +
  ln -sf ../../lib/$LIBNAME /usr/lib/libpamc.so
 +
LIBNAME=$(cat libpam_misc/libpam_misc.la | grep library_names | cut -f2 -d"'" | cut -f1 -d" ")
 +
  ln -sf ../../lib/$LIBNAME /usr/lib/libpam_misc.so
 +
 
  
 
== Multilib ==
 
== Multilib ==
Line 67: Line 71:
 
  CC="gcc ${BUILD32}" ./configure --libdir=/usr/lib --sbindir=/lib/security \
 
  CC="gcc ${BUILD32}" ./configure --libdir=/usr/lib --sbindir=/lib/security \
 
             --enable-securedir=/lib/security \
 
             --enable-securedir=/lib/security \
             --enable-docdir=/usr/share/doc/Linux-PAM-0.99.6.3 \
+
             --enable-docdir=/usr/share/doc/Linux-PAM-{{PAM_Library-Version}} \
 
             --enable-read-both-confs &&
 
             --enable-read-both-confs &&
 
  make
 
  make
Line 77: Line 81:
 
  mv -v /lib/security/pam_tally /sbin &&
 
  mv -v /lib/security/pam_tally /sbin &&
 
  mv -v /usr/lib/libpam*.so.0* /lib &&
 
  mv -v /usr/lib/libpam*.so.0* /lib &&
  ln -sfv ../../lib/libpam.so.0.81.5 /usr/lib/libpam.so &&
+
LIBNAME=$(cat libpam/libpam.la | grep library_names | cut -f2 -d"'" | cut -f1 -d" ") &&
  ln -sfv ../../lib/libpamc.so.0.81.0 /usr/lib/libpamc.so &&
+
  ln -sf ../../lib/$LIBNAME /usr/lib/libpam.so &&
  ln -sfv ../../lib/libpam_misc.so.0.81.2 /usr/lib/libpam_misc.so
+
LIBNAME=$(cat libpamc/libpamc.la | grep library_names | cut -f2 -d"'" | cut -f1 -d" ") &&
 +
  ln -sf ../../lib/$LIBNAME /usr/lib/libpamc.so &&
 +
LIBNAME=$(cat libpam_misc/libpam_misc.la | grep library_names | cut -f2 -d"'" | cut -f1 -d" ") &&
 +
  ln -sf ../../lib/$LIBNAME /usr/lib/libpam_misc.so
  
 
=== N32 ===
 
=== N32 ===
Line 95: Line 102:
 
  CC="gcc ${BUILDN32}" ./configure --libdir=/usr/lib32 --sbindir=/lib32/security \
 
  CC="gcc ${BUILDN32}" ./configure --libdir=/usr/lib32 --sbindir=/lib32/security \
 
             --enable-securedir=/lib32/security \
 
             --enable-securedir=/lib32/security \
             --enable-docdir=/usr/share/doc/Linux-PAM-0.99.6.3 \
+
             --enable-docdir=/usr/share/doc/Linux-PAM-{{PAM_Library-Version}} \
 
             --enable-read-both-confs &&
 
             --enable-read-both-confs &&
 
  make
 
  make
Line 105: Line 112:
 
  mv -v /lib32/security/pam_tally /sbin &&
 
  mv -v /lib32/security/pam_tally /sbin &&
 
  mv -v /usr/lib32/libpam*.so.0* /lib32 &&
 
  mv -v /usr/lib32/libpam*.so.0* /lib32 &&
  ln -sfv ../../lib32/libpam.so.0.81.5 /usr/lib32/libpam.so &&
+
LIBNAME=$(cat libpam/libpam.la | grep library_names | cut -f2 -d"'" | cut -f1 -d" ") &&
  ln -sfv ../../lib32/libpamc.so.0.81.0 /usr/lib32/libpamc.so &&
+
  ln -sf ../../lib32/$LIBNAME /usr/lib32/libpam.so &&
  ln -sfv ../../lib32/libpam_misc.so.0.81.2 /usr/lib32/libpam_misc.so
+
LIBNAME=$(cat libpamc/libpamc.la | grep library_names | cut -f2 -d"'" | cut -f1 -d" ") &&
 +
  ln -sf ../../lib32/$LIBNAME /usr/lib32/libpamc.so &&
 +
LIBNAME=$(cat libpam_misc/libpam_misc.la | grep library_names | cut -f2 -d"'" | cut -f1 -d" ") &&
 +
  ln -sf ../../lib32/$LIBNAME /usr/lib32/libpam_misc.so
  
 
=== 64Bit ===
 
=== 64Bit ===
Line 123: Line 133:
 
  CC="gcc ${BUILD64}" ./configure --libdir=/usr/lib64 --sbindir=/lib64/security \
 
  CC="gcc ${BUILD64}" ./configure --libdir=/usr/lib64 --sbindir=/lib64/security \
 
             --enable-securedir=/lib64/security \
 
             --enable-securedir=/lib64/security \
             --enable-docdir=/usr/share/doc/Linux-PAM-0.99.6.3 \
+
             --enable-docdir=/usr/share/doc/Linux-PAM-{{PAM_Library-Version}} \
 
             --enable-read-both-confs &&
 
             --enable-read-both-confs &&
 
  make
 
  make
Line 133: Line 143:
 
  mv -v /lib64/security/pam_tally /sbin &&
 
  mv -v /lib64/security/pam_tally /sbin &&
 
  mv -v /usr/lib64/libpam*.so.0* /lib64 &&
 
  mv -v /usr/lib64/libpam*.so.0* /lib64 &&
  ln -sfv ../../lib64/libpam.so.0.81.5 /usr/lib64/libpam.so &&
+
LIBNAME=$(cat libpam/libpam.la | grep library_names | cut -f2 -d"'" | cut -f1 -d" ") &&
  ln -sfv ../../lib64/libpamc.so.0.81.0 /usr/lib64/libpamc.so &&
+
  ln -sf ../../lib64/$LIBNAME /usr/lib64/libpam.so &&
  ln -sfv ../../lib64/libpam_misc.so.0.81.2 /usr/lib64/libpam_misc.so
+
LIBNAME=$(cat libpamc/libpamc.la | grep library_names | cut -f2 -d"'" | cut -f1 -d" ") &&
 +
  ln -sf ../../lib64/$LIBNAME /usr/lib64/libpamc.so &&
 +
LIBNAME=$(cat libpam_misc/libpam_misc.la | grep library_names | cut -f2 -d"'" | cut -f1 -d" ") &&
 +
  ln -sf ../../lib64/$LIBNAME /usr/lib64/libpam_misc.so
  
 
== Confuguring pam_console ==
 
== Confuguring pam_console ==

Revision as of 15:42, 15 December 2006

Download Source: ftp://ftp.kernel.org/pub/linux/libs/pam/pre/library/Linux-PAM-1.1.3.tar.bz2
Download (To build pam_console): http://cvs.fedora.redhat.com/repo/dist/pam/pam-redhat-0.99.5-1.tar.bz2/e2edde7861c48195728bc531e5a277e0/pam-redhat-0.99.5-1.tar.bz2

Introduction to PAM Library

The PAM Library package contains Pluggable Authentication Modules. This is useful for enabling the local system administrator to choose how applications authenticate users.

RedHat develops a set of external modules for use with Linux-Pam. This includes the pam_console module which can be used by some programs such as HAL and gnome-volume-manager. The purpose of pam_console is to indicate which user is active at the console and take appropriate actions. It does this by listing active users in the /var/run/console directory and assigning one to the console.lock file.

Dependencies

Optional

Non-Multilib

If you would like to build the pam_console module run the following commands:

tar -xf ../pam-redhat-0.99.5-1.tar.bz2 && 
sed -i 's,modules/Makefile,& modules/pam_console/Makefile,' configure.in && 
sed -i 's/SUBDIRS =/& pam_console/' modules/Makefile.am && 
sed -i '/^permsd_DATA/d' modules/pam_console/Makefile.am && 
autoreconf -v

Configure and compile the package:

./configure --libdir=/usr/lib --sbindir=/lib/security \
           --enable-securedir=/lib/security \
           --enable-docdir=/usr/share/doc/Linux-PAM-1.1.3 \
           --enable-read-both-confs &&
make

Install the package:

make install &&
chmod -v 4755 /lib/security/unix_chkpwd &&
mv -v /lib/security/pam_tally /sbin &&
mv -v /usr/lib/libpam*.so.0* /lib &&
LIBNAME=$(cat libpam/libpam.la | grep library_names | cut -f2 -d"'" | cut -f1 -d" ")
ln -sf ../../lib/$LIBNAME /usr/lib/libpam.so
LIBNAME=$(cat libpamc/libpamc.la | grep library_names | cut -f2 -d"'" | cut -f1 -d" ")
ln -sf ../../lib/$LIBNAME /usr/lib/libpamc.so
LIBNAME=$(cat libpam_misc/libpam_misc.la | grep library_names | cut -f2 -d"'" | cut -f1 -d" ")
ln -sf ../../lib/$LIBNAME /usr/lib/libpam_misc.so


Multilib

32Bit

If you would like to build the pam_console module run the following commands:

tar -xf ../pam-redhat-0.99.5-1.tar.bz2 && 
sed -i 's,modules/Makefile,& modules/pam_console/Makefile,' configure.in && 
sed -i 's/SUBDIRS =/& pam_console/' modules/Makefile.am && 
sed -i '/^permsd_DATA/d' modules/pam_console/Makefile.am && 
autoreconf -v

Configure and compile the package:

CC="gcc ${BUILD32}" ./configure --libdir=/usr/lib --sbindir=/lib/security \
           --enable-securedir=/lib/security \
           --enable-docdir=/usr/share/doc/Linux-PAM-1.1.3 \
           --enable-read-both-confs &&
make

Install the package:

make install &&
chmod -v 4755 /lib/security/unix_chkpwd &&
mv -v /lib/security/pam_tally /sbin &&
mv -v /usr/lib/libpam*.so.0* /lib &&
LIBNAME=$(cat libpam/libpam.la | grep library_names | cut -f2 -d"'" | cut -f1 -d" ") &&
ln -sf ../../lib/$LIBNAME /usr/lib/libpam.so &&
LIBNAME=$(cat libpamc/libpamc.la | grep library_names | cut -f2 -d"'" | cut -f1 -d" ") &&
ln -sf ../../lib/$LIBNAME /usr/lib/libpamc.so &&
LIBNAME=$(cat libpam_misc/libpam_misc.la | grep library_names | cut -f2 -d"'" | cut -f1 -d" ") &&
ln -sf ../../lib/$LIBNAME /usr/lib/libpam_misc.so

N32

If you would like to build the pam_console module run the following commands:

tar -xf ../pam-redhat-0.99.5-1.tar.bz2 && 
sed -i 's,modules/Makefile,& modules/pam_console/Makefile,' configure.in && 
sed -i 's/SUBDIRS =/& pam_console/' modules/Makefile.am && 
sed -i '/^permsd_DATA/d' modules/pam_console/Makefile.am && 
autoreconf -v

Configure and compile the package:

CC="gcc ${BUILDN32}" ./configure --libdir=/usr/lib32 --sbindir=/lib32/security \
           --enable-securedir=/lib32/security \
           --enable-docdir=/usr/share/doc/Linux-PAM-1.1.3 \
           --enable-read-both-confs &&
make

Install the package:

make install &&
chmod -v 4755 /lib32/security/unix_chkpwd &&
mv -v /lib32/security/pam_tally /sbin &&
mv -v /usr/lib32/libpam*.so.0* /lib32 &&
LIBNAME=$(cat libpam/libpam.la | grep library_names | cut -f2 -d"'" | cut -f1 -d" ") &&
ln -sf ../../lib32/$LIBNAME /usr/lib32/libpam.so &&
LIBNAME=$(cat libpamc/libpamc.la | grep library_names | cut -f2 -d"'" | cut -f1 -d" ") &&
ln -sf ../../lib32/$LIBNAME /usr/lib32/libpamc.so &&
LIBNAME=$(cat libpam_misc/libpam_misc.la | grep library_names | cut -f2 -d"'" | cut -f1 -d" ") &&
ln -sf ../../lib32/$LIBNAME /usr/lib32/libpam_misc.so

64Bit

If you would like to build the pam_console module run the following commands:

tar -xf ../pam-redhat-0.99.5-1.tar.bz2 && 
sed -i 's,modules/Makefile,& modules/pam_console/Makefile,' configure.in && 
sed -i 's/SUBDIRS =/& pam_console/' modules/Makefile.am && 
sed -i '/^permsd_DATA/d' modules/pam_console/Makefile.am && 
autoreconf -v

Configure and compile the package:

CC="gcc ${BUILD64}" ./configure --libdir=/usr/lib64 --sbindir=/lib64/security \
           --enable-securedir=/lib64/security \
           --enable-docdir=/usr/share/doc/Linux-PAM-1.1.3 \
           --enable-read-both-confs &&
make

Install the package:

make install &&
chmod -v 4755 /lib64/security/unix_chkpwd &&
mv -v /lib64/security/pam_tally /sbin &&
mv -v /usr/lib64/libpam*.so.0* /lib64 &&
LIBNAME=$(cat libpam/libpam.la | grep library_names | cut -f2 -d"'" | cut -f1 -d" ") &&
ln -sf ../../lib64/$LIBNAME /usr/lib64/libpam.so &&
LIBNAME=$(cat libpamc/libpamc.la | grep library_names | cut -f2 -d"'" | cut -f1 -d" ") &&
ln -sf ../../lib64/$LIBNAME /usr/lib64/libpamc.so &&
LIBNAME=$(cat libpam_misc/libpam_misc.la | grep library_names | cut -f2 -d"'" | cut -f1 -d" ") &&
ln -sf ../../lib64/$LIBNAME /usr/lib64/libpam_misc.so

Confuguring pam_console

You only need to view this section if you built the pam_console module.

The altering of device permissions is unnecessary. In this case, only the console locking actions are needed. Replace one of the pam_console configuration files to achieve this.

cat > /etc/security/console.handlers << "EOF"
# Begin /etc/security/console.handlers
console consoledevs tty[0-9][0-9]* vc/[0-9][0-9]* :[0-9]\.[0-9] :[0-9]
EOF


Contents

Note:
The files that come with pam_console need to be added to this list.
Installed Programs: pam_tally
Installed Libraries: libpam.{so,a}, libpamc.{so,a}, libpam_misc.{so,a}
Installed Directories: /etc/pam.d, /etc/security, /lib/security, /usr/include/security

Short Descriptions

pam_tally is used to view or manipulate the faillog file.
libpam.{so,a} provide the interfaces between applications and the PAM modules.