¿Es posible cambiar el archivo de base de datos de contraseñas (/etc/passwd) en Linux?

¿Es posible cambiar el archivo de base de datos de contraseñas (/etc/passwd) en Linux?

¿Es posible cambiar el archivo de base de datos de contraseñas ( /etc/passwd) a algún otro archivo? ¿Cómo funciona este mecanismo de autenticación internamente? ¿Depende de pam?

Respuesta1

Tienes razón: /etc/passwdy /etc/shadowson consultados por pam_unix.so, que forman parte de PAM. Al menos en Linux modernos. Podrías cambiar esto parcheando pam_unix.so. Si hay que creer en la página de manual, no se puede cambiar la ubicación de las bases de datos del sistema.

Y realmente no quieres. /etc/passwdno solo se usa para autenticación, también se usa para resolución de nombres (inversa) y para buscar cosas como el nombre completo del usuario, shell, etc. El nombre y la ubicación están tan estandarizados que moverlos casi definitivamente rompería cosas fuera de PAM. Tendrías que parchear mucho más de lo que esperabas.

Actualizar:Si está intentando ocultar los /etc/{passwd,shadow,group}archivos por seguridad, no se preocupe. La seguridad mediante la oscuridad rara vez ayuda como política. Déjalos donde están y endurece el resto de tus políticas.

Actualización: una posible solución

Si tiene algún software personalizado y necesita acceder a un conjunto diferente de bases de datos de usuarios/grupos, puede hacer una copia de los módulos y parches PAM y NSS relevantes.a ellospara utilizar sus bases de datos personalizadas. Las bases de datos originales de Unix permanecen donde están para que el software no se confunda, pero puede configurar PAM y NSS para usar sus módulos personalizados donde lo necesite y usar cualquier política que tenga sentido para usted.

Mantenga las bases de datos Unix esencialmente impecables y tendrá lo que solicitó. Esto es más o menos lo que hacen los módulos radiusy ldapPAM/NSS: proporcionan unaadicional(no reemplazo) fuente de credenciales e información de usuario/grupo.

Yendo un paso más allá: puede volver a PAM y NSS y desactivar por completo las búsquedas de bases de datos Unix. Deje allí los archivos para el software antiguo (naturalmente, sus vistas de las bases de datos de usuarios/grupos serán inexactas, pero al menos no se romperán).

Respuesta2

Lo que estás buscando es el pam_pwdfilemódulo. En Debian/Ubuntu el paquete es libpam-pwdfile(no estoy seguro acerca de las distribuciones derivadas de RedHat).

El READMEincluido en el paquete explica cómo usarlo.

Respuesta3

No estoy seguro de si es posible de inmediato, pero definitivamente es posible con un poco de piratería. Para hacer esto necesitarás:

  1. Sintonice/hackee la biblioteca nsswitch (/lib/libnss_files.so o libnss_db.so; verifique su /etc/nsswitch.conf) para que lea algún otro archivo.
  2. Sintonice/hackee el módulo pam_unix para que lea otros archivos.

Respuesta4

Utilice NIS o LDAP para autenticar a sus usuarios. Sus contraseñas no se almacenarán en los archivos /etc/{password/shadow}.

información relacionada