rootless.md
The following list categorizes the known issues and irregularities with running Podman as a non-root user. Many of these are kernel-level restrictions in place for security reasons, and are not reasonably solvable by Podman.
CAP_NET_BIND_SERVICE to bind to low ports.net.ipv4.ip_unprivileged_port_start sysctl to change the lowest port. For example sysctl net.ipv4.ip_unprivileged_port_start=443 allows rootless Podman containers to bind to ports >= 443.containers.conf or at runtime.
-p 80:80) that other containers could access, you can use the solution (setting pasta options with 10.0.2.x IPs) posted here.rootlessport for port forwarding by default, which is a userspace proxy that does not preserve client source IPs. Setting rootless_port_forwarder="pasta" in the [network] section of containers.conf switches to pasta's kernel-level forwarding (via pesto), preserving the original client IP. This option is experimental and its behavior is subject to change. It requires a version of passt (>= passt-0^20260507.g1afd4ed) that ships the pesto binary.PrivateNetwork can be made to work by passing --cap-add SYS_ADMIN, but the security implications should be carefully evaluated. In most cases, it's better to create an override.conf drop-in that sets PrivateNetwork=no. This also applies to containers run by root.fuse-overlayfs will be used.fuse-overlayfs) and VFSpodman mount and podman unmount are only visible in the rootless user namespace, which can be accessed with podman unsharepodman container checkpoint and podman container restore (CRIU requires root)CAP_MKNOD) to create device nodes. If a container needs to create device nodes, it must be run as root.