Fedora 32의 단순 컨테이너에서 'sudo'가 실패하는 이유는 무엇입니까?

Fedora 32의 단순 컨테이너에서 'sudo'가 실패하는 이유는 무엇입니까?

나는 이것을 알아 내려고 머리를 긁적입니다.

새로 설치된 Fedora 32에서 다음 최소 컨테이너가 제대로 실행되지 않습니다.

FROM centos:7

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

이를 테스트하려면 다음을 실행하세요.

podman build .

결과는 다음과 같습니다.

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

이제 Fedora 32를 특별하게 만드는 것이 무엇인지 궁금합니다. 나는 이것이 31세 미만에서 작동했다고 확신합니다. 참여 버전 sudo과 환경이 변경되지 않았기 때문에 유일한 차이점은 podman일 수 있습니다. 그러면 Podman은 sudo컨테이너(또는 일반적으로 PAM) 내부 호출과 어떤 관련이 있습니까 ?

(이 질문에는 "podman" 태그를 생성할 수 없기 때문에 "docker" 태그가 지정되었습니다.)

답변1

좋아요, 여기 제가 수많은 고통스러운 디버깅 시간을 거쳐 알아낸 것이 있습니다.

  1. 이 작업을 시도하기 전에 새 노트북으로 마이그레이션했습니다. 저는 /home 기존 노트북에서 새 노트북으로 복사하여 이 작업을 수행했습니다.
  2. 내 새 홈 디렉터리의 이미지 캐시에 일종의 오류가 포함되어 있습니다. podman불평하거나 이미지를 다시 다운로드하려고 시도하지 않았지만 (다른 컴퓨터와 비교하여) 해시가 다르다는 것을 알 수 있었습니다. 이미지 안에는 /etc/shadow누락되었습니다. 하지만 왜, 어떻게 그런 일이 일어날 수 있었는지 전혀 모르겠습니다.
  3. 캐시를 완전히 지우고 podman다시 다운로드한 후 올바른 이미지를 얻었고 모든 것이 다시 작동했습니다.

따라서 이는 Fedora 31에서 32로 podman 이미지를 복사할 때 발생한 매우 구체적인 오류였음에 틀림없습니다. 이미지가 다소 손상되지 않았습니다. 나는 그것을 실행할 수 있었다. 그러나 적어도 하나의 중요한 파일을 완전히 놓쳤습니다. 꽤 기괴합니다.

관련 정보