container: do not chown to dest target with U

if the 'U' option is provided, do not chown the destination target to
the existing target in the image.

Closes: https://github.com/containers/podman/issues/22224

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
This commit is contained in:
Giuseppe Scrivano
2024-04-03 11:03:02 +02:00
parent 7d68362cf5
commit 519a66c6a9
2 changed files with 12 additions and 1 deletions

View File

@ -2882,8 +2882,13 @@ func (c *Container) fixVolumePermissions(v *ContainerNamedVolume) error {
return err
}
// Make sure the new volume matches the permissions of the target directory.
// Make sure the new volume matches the permissions of the target directory unless 'U' is
// provided (since the volume was already chowned in this case).
// https://github.com/containers/podman/issues/10188
if slices.Contains(v.Options, "U") {
return nil
}
st, err := os.Lstat(filepath.Join(c.state.Mountpoint, v.Dest))
if err == nil {
if stat, ok := st.Sys().(*syscall.Stat_t); ok {