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 でも動作していたはずです。関係するバージョンとその環境は変更されていないため、唯一の違いは podman である可能性があります。しかし、podman はコンテナー内 (または一般的な PAM)sudoの呼び出しとどのような関係があるのでしょうか。sudo

(この質問には「podman」タグが付けられました。タグを作成できないためです)

答え1

さて、何時間も苦労してデバッグした結果、私が理解したことは次のとおりです。

  1. これを試す前に、新しいラップトップに移行しました。/home 古いラップトップから新しいラップトップにコピーすることでこれを行いました。
  2. 新しいホーム ディレクトリのイメージ キャッシュに何らかの障害がありました。podmanエラーは発生せず、イメージの再ダウンロードも試みませんでしたが、ハッシュが異なっていることがわかりました (別のマシンと比較すると)。イメージ内で が/etc/shadow欠落していました。ただし、なぜ、どのようにそれが起こったのかはわかりません。
  3. podmanキャッシュを完全に消去して再ダウンロードすると、正しい画像が取得され、すべてが再び機能するようになりました。

したがって、これは podman イメージを Fedora 31 から 32 にコピーするときに発生した非常に特殊なエラーだったに違いありません。イメージはある程度無傷でした。実行できました。しかし、少なくとも 1 つの重要なファイルが完全に欠落していました。非常に奇妙です。

関連情報