This is most likely due to SELinux labeling/protection. You can add :z to the end of the --volume option specification to relabel files in the shared directories so that they can be accessed from a container. man podman-run for more information.
I would consider the implications of this, though. You most likely only want to relabel files that you explicitly want to share in the container. Putting those files into a separate directory will help. For your home directory sharing, maybe you would prefer to use a tool like toolbox to set up these containers for you.
For my actual use case, I wanted to share specific directories, so no problem with relabeling them as shared this time. Will think about it for other cases though.
I just had the same issue - I would prefer to avoid over-sharing, is there a podman equivalent of the Docker group that I can use to flag files that I want containers to have access to?
There’s more context in this article (a bit old but still relevant). Though the simplest thing to do is to just create a new empty directory and share that with :z.
If you really need to share a system directory (or your $HOME) then the podman-run man page says you should use --security-opt label=disable:
Note: Do not relabel system files and directories. Relabel‐
ing system content might cause other confined services on
your machine to fail. For these types of containers we rec‐
ommend that disable SELinux separation. The option --secu‐
rity-opt label=disable disables SELinux separation for the
container. For example if a user wanted to volume mount
their entire home directory into a container, they need to
disable SELinux separation.
$ podman run --security-opt label=disable -v $HOME:/home/user fedora touch /home/user/file