¿Por qué falla `sudo` en un contenedor simple en Fedora 32?

¿Por qué falla `sudo` en un contenedor simple en Fedora 32?

Me estoy rascando la cabeza tratando de resolver esto.

En un Fedora 32 recién instalado, el siguiente contenedor mínimo no se ejecuta correctamente:

FROM centos:7

RUN yum install -y sudo && yum clean all -y
RUN useradd -m test
RUN sudo -u test true

Para probar esto, ejecute:

podman build .

El resultado es:

STEP 4: RUN sudo -u test true
sudo: PAM account management error: Authentication service cannot retrieve authentication info
Error: error building at STEP "RUN sudo -u test true": error while running runtime: exit status 1

Ahora me pregunto, ¿qué hace que Fedora 32 sea especial? Estoy bastante seguro de que esto solía funcionar en 31. Dado que la versión de sudoparticipación y su entorno no cambian, la única diferencia podría ser podman. Pero, ¿qué tiene que ver podman con la invocación del sudointerior del contenedor (o PAM en general)?

(esta pregunta fue etiquetada con "docker" porque no puedo crear la etiqueta "podman")

Respuesta1

Bien, esto es lo que descubrí después de muchas dolorosas horas de depuración.

  1. Había migrado a una nueva computadora portátil antes de intentar esto. Hice esto copiando /home de la computadora portátil antigua a la nueva.
  2. El caché de imágenes en mi nuevo directorio personal contenía algún tipo de falla. podmanNo me quejé ni intenté volver a descargar la imagen, pero pude ver (en comparación con otra máquina) que el hash era diferente. Faltaba dentro de la imagen /etc/shadow; sin embargo, no tengo idea de por qué o cómo pudo haber sucedido.
  3. Después de borrar completamente el podmancaché y volver a descargar, obtuve las imágenes correctas y todo funcionó nuevamente.

Entonces esto debe haber sido un error muy específico al copiar imágenes de podman de Fedora 31 a 32. La imagen estaba algo intacta. Podría ejecutarlo. Pero omitió por completo al menos un archivo crucial. Bastante extraño.

información relacionada