Wissen/Podman
< Wissen
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.