Introducción a PAM PAM es un sistema de módulos de autentificación. Permite que el administrador seleccione mediante un fichero de configuración el modo en que quiere que el programa autentifique al usuario y decida si le da o no paso. Para ello asocia a la aplicación una serie de módulos, que pueden ser de cuatro tipos: -auth: autentificación, valida al usuario, por ejemplo mediante el nombre de usuario y password mirando en un fichero, pero también en una base de datos, en un sistema remoto basado en un servidor Windows NT... -account: decide si el usuario autentificado tiene acceso. Por ejemplo según el día y hora que sea y su nivel de privilegio... -session: una vez que el usuario se ha autentificado, se ejecuta el código de este módulo, al acabar la sesión, se ejecuta también código proporcionado por el módulo. Esta posibilidad permite hacer casi cualquier cosa... -password: se utiliza para poder cambiar la contraseña sin que el progra tenga por qué saber en qué modo ni lugar se almacena El programador utiliza un API estándar y no tiene por qué saber nada de estos módulos: hay una separación total entre el programador de la aplicación, el de los módulos y el administrador. Documentación: Suele estar en /usr/share/doc/pam-*/ -Al administrador, que asocia módulos a los servicios, le interesa sobre todo el fichero pam.txt, así como los distintos README.*, que describen varios módulos. -Al programador de la aplicación, que hace su programa compatible con PAM, le interesa el fichero pam_appl.txt, así como el ejemplo autentifica.c que incluimos en este directorio -Al programador de módulos PAM, que funcionarán con cualquier aplicación compatible que utilice libpam, va dirigido el fichero pam_modules.txt. La página raíz de PAM es: http://www.kernel.org/pub/linux/libs/pam/index.html Así mismo hay que reseñar que el modelo PAM se ha trasladado también a Java, formando parte de Java 1.4 (aunque también se ha portado a Java 1.2) se trata de JAAS (Java Authentication and Authorization Service).