nss-userhosts: extensión NSS para entradas /etc/hosts por usuario

Fuentes: nss-userhosts: a glibc NSS module for per-user /etc/hosts entries

nss-userhosts es una biblioteca escrita en Rust (87,9 % del código, completado con Shell, Dockerfile y just) que actúa como módulo de Name Service Switch (NSS) para glibc. Su objetivo es permitir que cada usuario sin privilegios mantenga sus propios registros tipo /etc/hosts en archivos independientes dentro de su directorio personal.

La herramienta lee todos los ficheros con formato hosts ubicados en $HOME/.config/userhosts/*.conf, los combina y los expone al resolver de glibc junto con el resto de fuentes configuradas. Soporta registros IPv4 e IPv6, aunque todavía no resuelve direcciones a nombres ni respeta la especificación XDG Base Directory para localizar la carpeta.

Una limitación clave es que solo funciona con programas que utilizan el resolver de glibc: las aplicaciones que resuelven nombres por su cuenta no se beneficiarán. Para instalarlo basta con clonar el repositorio, ejecutar cargo build --release, renombrar el artefacto libnss_userhosts.so a libnss_userhosts.so.2 y copiarlo en /usr/lib/. Los usuarios de Arch disponen además de un PKGBUILD en la carpeta packaging. Después hay que editar /etc/nsswitch.conf para anteponer userhosts a las fuentes habituales, por ejemplo: hosts: userhosts mymachines resolve [!UNAVAIL=return] files myhostname dns.

El proyecto incluye un Containerfile y un justfile pensados para probarlo en contenedores sin privilegios con podman; la variable de entorno NSS_USERHOSTS_LOG activa mensajes de depuración. Su autor reconoce que está en fase inicial y dispone de poco tiempo para mantenerlo, aunque acepta pull requests e informes en Codeberg.