Si /etc/nsswitch.conf tiene:

passwd: files ldap 

esta línea en ella, y yo hago getent passwd ¿se ejecutará primero en la /etc/passwd lista y luego pasar por todos los usuarios en LDAP? Eso parece ser lo que sucede.

Lo probé en un servidor de Red Hat y se desplazaban miles de líneas cuando /etc/passwd solo tiene 36 líneas.

Comentarios

  • Lo que usted describe me parece perfectamente normal. Cuando usa LDAP, getent passwd mostrará todos los usuarios (local + ldap)
  • Gracias, ' es muy posible que sea normal. Soy bastante nuevo en el uso de LDAP con Linux. Anteriormente administraba usuarios que utilizan una utilidad de gestión de la configuración.

Responder

getent devolverá los resultados para cualquier «base de datos» que especifiques. Determina qué backends usar al construir esta «base de datos» según el contenido de /etc/nsswitch.conf.

getent enumera sus «bases de datos» cuando consulta su página de uso, getent --help.

Supported databases: ahosts ahostsv4 ahostsv6 aliases ethers group gshadow hosts initgroups netgroup networks passwd protocols rpc services shadow 

Que yo sepa, no hay wa y para deshabilitar su comportamiento de proporcionar todos los resultados para los distintos backends que están configurados en /etc/nsswitch.conf.

getent y /etc/nsswitch.conf son parte de nss (cambio de servicio de nombres).

Extracto de la página de manual de nss

Cada llamada a una función que recupera datos de una base de datos del sistema, como la contraseña o la base de datos del grupo, es manejada por la implementación del Cambio de servicio de nombres en la biblioteca GNU C. Los diversos servicios proporcionados se implementan mediante módulos independientes, cada uno de los cuales naturalmente varía mucho del otro.

Las implementaciones predeterminadas que vienen con la biblioteca GNU C son por defecto conservadoras y no usan datos inseguros. Esto puede resultar muy costoso en algunas situaciones, especialmente cuando las bases de datos son grandes. Algunos módulos permiten que el administrador del sistema solicite tomar atajos si se sabe que son seguros. Entonces, es responsabilidad del administrador del sistema asegurarse de que la suposición sea correcta.

Hay otros módulos en los que la implementación cambió con el tiempo. Si una implementación solía sacrificar la velocidad por el consumo de memoria, podría crear problemas si el la preferencia está cambiada.

Backends

Hay una variedad de estos, demasiados para cubrir aquí. Pero basta con decir que son backends como sssd (sss / LDAP), NIS y NIS +, por nombrar algunos.

Entonces, dependiendo de lo que su sistema haya especificado en su /etc/nsswitch.conf, influirá en la salida que muestra getent cuando se consulta una «base de datos» determinada, como getent passwd.

Referencias

Comentarios

  • El enlace de cómo sssd está muerto.
  • @GhostLyrics – enlace cambiado

Responder

Sí, si solo dice getent passwd, enumerará todos los usuarios que pueda encontrar en cualquiera de las bases de datos enumeradas en nsswitch.

Comentarios

  • solo para los proveedores de NSS que permiten la enumeración. Por ejemplo, con sss, puede deshabilitar la enumeración para algunos dominios.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *