#!/bin/bash # Intentionally, it will not update files that already exist, but it cannot identify files a user has deleted that you want to put back again so those will be recreated. # It will not update root's files at all. getent passwd | while IFS=: read username x uid gid gecos home shell do [[ "$username" == root || ! -d "$home" ]] && continue tar -cf - -C /etc/skel . | sudo -Hu "$username" tar --skip-old-files -xf - done