chown root:root -R /root
chown man:man -R /var/cache/man
chown -h root:root /initrd.img /initrd.img.old /lib /lib64 /sbin /vmlinuz /vmlinuz.old /
apt-get install --reinstall $(dpkg --get-selections | awk '$2=="install"{print $1}')
# ^- that did not help much.
# on a clean / fresh server:
find / \( -path /proc -o -path /sys \) -prune -o -printf '%P\t%u\t%g\n' > /tmp/ownership.txt
# transfer that file to the problematic server
on the destination server create and run fix.sh:
#!/bin/bash
while IFS=$'\t' read -r path user group; do
[ -e "/$path" ] || continue
chown "$user:$group" "/$path"
done < /tmp/ownership.txt
command that helped me to spot wrongly owned files/directories:
find / -group www-data|egrep -v "^(/var/www|/proc|/var/log/nginx|/var/spool/github-rollback/|/var/lib/nginx/proxy/)"|less
find / -user www-data|egrep -v "^(/var/www|/proc|/var/log/nginx|/var/spool/github-rollback/|/var/lib/nginx/proxy/)"|less