El directorio /etc/pam.d se utiliza para configurar las aplicaciones que utilicen PAM (en versiones anteriores era utilizado el archivo /etc/pam.conf. A pesar de que aún se pueda leer en el caso de que no esté presente en /ect/pam.d, su uso no se recomienda). Cada aplicación (en la realidad, cada servicio) tiene su propio archivo. Un archivo tiene un contenido similar a:
La primera línea es un comentario (empezando por #).
Las próximas tres líneas definen los tres módulos que serán usados en la autenticación de usuarios. La segunda línea garantiza que el acceso al sistema como superusuario solamente podrá ser realizado a través de terminales que estén listados en el archivo /etc/securetty, en el caso de que el exista. La tercera línea crea la exigencia de información de contraseña y su validación para la liberación de acceso al sistema. La cuarta verifica si el archivo /etc/nologin existe, y en el caso de que esto ocurra, enseña el contenido del archivo y permite acceso al sistema solamente para el superusuario (útil para intervalos de manutención de sistema). Todos los tres módulos serán ejecutados, mismo que el módulo anterior niegue el acceso al sistema.
Por cuestiones de seguridad, el sistema no avisa al usuario porque su acceso fue negado, dificultando un eventual acceso indebido.
La quinta línea define los módulos de control que serán activados. Por ejemplo en el caso de que el sistema de contraseñas sombra esté activado, el módulo pam_pwdb.so verificará si la cuenta o la contraseña no están expiradas, o si el período entre de cambio obligatorio de contraseñas no fue alcanzado.
La sexta línea somete una nueva contraseña a una serie de pruebas para garantizar que ella no sea fácilmente descubierta, por ejemplo, por un programa de quiebra de contraseñas basado en diccionarios.
La sétima línea especifica que el programa a ser utilizado en el cambio de contraseñas, cuando hace falta, será el pam_pwdb.so (él solamente será accionado si el módulo auth determinar que la contraseña deba ser cambiada).
La última línea especifica que el módulo pam_pwdb.so debe ser usado para administrar la sesión. Actualmente este módulo no tiene una función específica, y puede ser substituido por cualquier otro módulo necesario.
Observa que el orden de las líneas en cada archivo es importante, aunque no necesariamente en la misma orden de que los archivos required son llamados, hay otros indicadores de control disponibles. Ya que un módulo optional raramente se usa por defecto del Conectiva Linux, sufficient y requisite vuelven el orden de las líneas importante.
Por ejemplo, el archivo de configuración del comando rlogin tiene el siguiente contenido:
Es muy similar al archivo de login, pero hay una línea adicional que especifica un módulo extra y el orden de los módulos es diferente.
Inicialmente pam_securetty mantienen la prohibición de login del superusuario a partir de terminales sin seguridad, lo que inhibe el rlogin para el superusuario15.3. En el caso de que esto sea necesario (a pesar de no recomendado) basta con eliminar esta línea.
Después, el módulo pam_nologin chequea la existencia del archivo /etc/nologin de acuerdo con lo que ha sido descrito arriba.
En la tercera línea tenemos el módulo pam_rhosts_auth.so que autentica el usuario y inmediatamente presenta un retorno positivo al rlogin sin que la contraseña sea ofrecida. En el caso de que este módulo no autorice el usuario la próxima línea será ejecutada.
Finalmente el módulo pam.pwdb.so ejecutará una autenticación normal, desde que el módulo anterior ya no haya autorizado el usuario. Es posible no solicitar una contraseña, en el caso de que el chequeo del módulo pam_securetty.so no autorice el acceso. Para esto basta con alterar el parámetro required para requiere.