Wissen/Podman

Aus UUGRN
Zur Navigation springen Zur Suche springen

Podman rootless mit SELinux einrichten[Bearbeiten]

1. Podman installieren[Bearbeiten]

openSUSE:

sudo zypper install podman

Debian/Ubuntu:

sudo apt install podman

2. Benutzer anlegen[Bearbeiten]

sudo useradd -m -s /bin/bash podsvc
sudo passwd -l podsvc

3. Sub-UID/GID prüfen[Bearbeiten]

grep podsvc /etc/subuid /etc/subgid

Falls keine Einträge vorhanden sind:

echo "podsvc:100000:65536" | sudo tee -a /etc/subuid
echo "podsvc:100000:65536" | sudo tee -a /etc/subgid

4. Rootless Podman testen[Bearbeiten]

sudo -iu podsvc
podman run --rm docker.io/library/alpine id
podman info --format '{{.Host.Security.Rootless}}'

Erwartet:

true

5. Autostart ohne Benutzeranmeldung[Bearbeiten]

sudo loginctl enable-linger podsvc

6. SELinux für eigenes Podman-Storage[Bearbeiten]

Beispiel: Podman-Daten liegen unter /local/podman.

sudo semanage fcontext -a -t container_var_lib_t '/local/podman(/.*)?'
sudo restorecon -Rv /local/podman

Prüfen:

ls -Zd /local/podman

Das Verzeichnis sollte mit container_var_lib_t gelabelt sein.

7. SELinux bei Bind-Mounts[Bearbeiten]

Persistente Verzeichnisse mit :Z einbinden:

volumes:
  - /local/git/forgejo/data:/var/lib/gitea:Z
  • :Z = exklusiv für einen Container
  • :z = von mehreren Containern gemeinsam verwendet

8. Betrieb[Bearbeiten]

Container immer als podsvc verwalten:

sudo -iu podsvc
podman ps

Nicht:

sudo podman ...

sudo podman verwendet die Podman-Umgebung von root.

9. SELinux prüfen[Bearbeiten]

getenforce

Sollte anzeigen:

Enforcing

Bei Zugriffsproblemen:

sudo ausearch -m AVC -ts recent

SELinux nicht deaktivieren. Zuerst Dateirechte und SELinux-Labels prüfen.