recovering debian from accidental chown -R www-data:www-data /

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

Leave a Reply

Your email address will not be published. Required fields are marked *

(Spamcheck Enabled)