J'ai mis en œuvre libnss_wrapper
Dans le point d'entrée d'un conteneur Docker, afin de "créer" l'utilisateur passé via docker run -u UID
. Ce script crée également un /etc/sudoers.d/USER
Fichier pour permettre l'accès sudo.
Quand j'essaie de courir Sudo
, je reçois l'erreur Sudo: you do not exist in the passwd database
.
Que puis-je faire pour dire sudo à utiliser $NSS_WRAPPER_PASSWD
à la place de /etc/passwd
?
Edit Comme @ Todd-C-Miller a fait remarquer, cela n'est pas possible. Comme il pointé , on peut utiliser des modules NSS appropriés comme NSS-Altfiles (Fedora, ...) ou NSS-EXTRAUSERS (Debian, Ubuntu) qui permettent l'utilisation si des fichiers dans des endroits alternatifs.
Étant donné que NSS_WRAPPER s'appuie sur ld_preload, vous ne pouvez pas l'utiliser avec sudo. La liaison dynamique ignore ld_preload pour les exécutables SET-User-ID comme sudo (vous auriez le même problème avec quelque chose comme SU).
Voir la description de "mode sécurisé" dans le manuel LD.SO pour plus d'informations.