----
I think that the ownership of the files relates more to the services that use these files and you don't really say if you are still using webrick, apache, nginx to serve these files as that may have some impact.
I myself have all the files and folders owned by puppet:puppet (/etc/puppet, /var/lib/puppet, /var/www/foreman, /var/www/puppet-dashboard) and use nginx to serve forman, puppet & puppet-dashboard.
I think if you want to change to user puppet, you probably only need to 'su - puppet' but if /var/lib/puppet isn't owned by puppet:puppet then switching to user puppet is probably going to be difficult.
Also, it seems that if you have multiple users doing configuration, you probably should have multiple environments (ie, development & testing and not just a production) and also a version control system (git or subversion) and perhaps a separate puppet server for development & testing to avoid inflicting errors into running configurations.
I found the book "Pro Puppet" very useful for defining the all of these best practices.
Craig
----
the one thing I have always appreciated about Linux/UNIX is that the config files are always text files and can be fixed and thus you don't have to resort to things like uninstalling/re-installing, deleting/recreating users because everything is relatively easily fixed - at least assuming that you know how.
su - puppet # if done by root doesn't require a password.
# Root user doesn't need a password for anything
# if done by a user, needs puppet user's password
/etc/sudoers - 'puppet ALL=(ALL) NOPASSWD:ALL'
# Can't imagine a good reason to do this but will only
# allow user 'puppet' to sudo anything without a password
if 'su - puppet' doesn't give you the bash shell as user puppet then perhaps you don't have a good shell set up for user puppet.
getent passwd | grep puppet # will list things like the shell
# which should be /bin/bash but if not, use chsh
sudo chsh puppet -s /bin/bash # will set puppet users shell to /bin/bash
It's also possible that user puppet's home directory is wrongly set or the permissions are bad...
# getent passwd | grep puppet
puppet:x:1001:1001:Puppet,,,:/var/lib/puppet:/bin/bash
sudo chown puppet:puppet /var/lib/puppet -R
Craig