in pkg/userutils/userutil_linux.go [127:163]
func chownRecursive(uid, gid int, dir string) error {
err := filepath.Walk(dir, func(path string, info os.FileInfo, err error) error {
if err != nil {
return err
}
fmode := info.Mode()
if fmode.IsRegular() {
if fmode&os.ModeSetuid != 0 || fmode&os.ModeSetgid != 0 {
return nil
}
if fmode.Perm()&0111 != 0 {
return nil
}
if fmode.Perm()&0002 != 0 {
return nil
}
}
if fmode&os.ModeSymlink != 0 {
return nil
}
if err := chown(path, uid, gid); err != nil {
return err
}
return nil
})
if err != nil {
return fmt.Errorf("error change owner of dir %s to %v:%v due to error: %w", dir, uid, gid, err)
}
return nil
}