Sabemos que las contraseñas de los usuarios se guardan en /etc/passwd
, pero de forma encriptada, por lo que ni siquiera el root puede verlos:
jane:x:501:501::/home/jane:/bin/bash
fred:x:502:502::/home/fred:/bin/bash
Como se muestra arriba, :x:
representa la contraseña.
¿Hay alguna forma (posible configuración) de guardar la contraseña en /etc/passwd
? en texto claro y tal que la raíz pueda verlos?
Respuesta aceptada:
Las otras dos respuestas le han dicho, ¡correctamente!, que esto es una mala idea™ . Pero también te han dicho que es difícil hacer, lo que requiere cambiar un montón de programas.
Eso no es cierto. Es muy fácil. Solo necesita cambiar uno o dos archivos de configuración. Creo que es importante señalar esto, porque debe tenerlo en cuenta al iniciar sesión en sistemas que no controla. Estos en realidad no pondrán una contraseña de texto sin formato en /etc/passwd
o /etc/shadow
, irá a un archivo diferente. Tenga en cuenta que no los he probado, ya que prefiero no tener mi contraseña en texto sin formato.
-
Edite
/etc/pam.d/common-password
(para detectar el cambio de contraseña) o/etc/pam.d/common-auth
(para detectar el inicio de sesión) y agregue… pam_exec expose_authtok log=/root/passwords /bin/cat
-
Edite ambos y cambie de pam_unix a pam_userdb con
crypt=none
. Alternativamente, puede ponerlo solo en common-password (dejando pam_unix también) para registrar las contraseñas cuando se cambien. -
Podrías eliminar la
shadow
(así como cualquier opción de hash fuerte) de pam_unix para deshabilitar el archivo oculto y volver a las contraseñas de cifrado tradicionales. No es texto sin formato, pero John the Ripper lo arreglará por ti.
Para obtener más detalles, consulte la Guía de administración del sistema PAM.
También puede editar el código fuente de PAM o escribir su propio módulo. Solo necesita compilar PAM (o su módulo), nada más.