Currently, puppet will copy the owner/group/mode from sourced files when those properties are unspecified. This leads to surprising results, e.g.
We discussed changing the default behavior in https://groups.google.com/forum/#!msg/puppet-users/XNy8gI3jcf0/HufQkYQdKMAJ
This ticket calls for changing the default value of :source_permissions from :use to :ignore on all platforms.
If owner, group, and/or mode are unspecified, then the resulting file resource should have permissions based on the current user's umask (POSIX) or default dacl (Windows).