memo

2023-02-26

podman container の中で su ができない問題

  • なんかできない

    $ podman container run --rm -it archlinux
    [root@feab108af408 /]# useradd user
    [root@feab108af408 /]# su user
    su: failed to execute /bin/bash: Operation not supported
    
    • setuid(...) は成功してるけど、その後の exec に失敗してるっぽい

  • root で同じことをやってみたら普通に動いた。

    • 違いとしては:

      • root か rootless か

      • overlay か fuse-overlayfs か

      • 下層の FS が ext4 か zfs か

    • podman --storage-opt overlay.mount_program=/usr/bin/fuse-overlayfs ... って形で実行して、 root だけど fuse-overlayfs を使わせるようにしてみたけど、こちらも成功した。

    • rootless で ext4 なディレクトリを storage 置き場に指定して実行してみたら、普通に動いた

      • storage.conf:

        [storage]
        driver = "overlay"
        rootless_storage_path = "/var/tmp/ext4/containers"
        
      • → じゃあ zfs が悪さしてるのか?

  • zfs podman operation not supported でぐぐったら引っかかった issue

    • https://github.com/containers/podman/issues/11213

    • この issue のコメントにあったように zfs set acltype=posixacl tank したら動くようになった。

      • (動くようにはなったけど、何で?っていうのは全然分からん。)