dimanche 8 février 2009

Restaurer le propriétaire des fichiers système (Debian, Ubuntu)

Si vous faites l'erreur de lancer "chown user /"
votre système va être totalement foutu!!

Mais voici un script qui permet de restaurer les permissions des fichiers perdus à partir des sources .deb

#!/bin/bash
# dpkg_owner_restore.sh
# Restores file permissions for all files on a debian system for which .deb
# packages exist.
# Author: Fred <frenault at zicmama dot com>
# Date: 2009-02-07
ARCHIVE_DIR=/var/cache/apt/archives/
PACKAGES=`ls $ARCHIVE_DIR`
cd /
for PACKAGE in $PACKAGES;
do
    echo -e "Getting information for $PACKAGE\n"
    /usr/bin/dpkg -c "${ARCHIVE_DIR}${PACKAGE}" > /tmp/pack
    while read FILE_DETAILS
    do
          PERMS=`echo "$FILE_DETAILS" | cut -d" " -f1`
          OWN=`echo "$FILE_DETAILS" | cut -d" " -f2 | /usr/bin/tr '/' ':'`
          PATHNAME=`echo "$FILE_DETAILS" | awk '{print $6}'`
          echo "chown $OWN '$PATHNAME'"
          chown $OWN "$PATHNAME"
    done < /tmp/pack
done


Ce n'est pas parfait, et ne remet pas le bon owner sur tout les fichiers.
Mais ça peut aider à réparer!!!

Ensuite, on peut utiliser une machine de référence pour récupérer les autres owner
find / -group web388 -exec ssh root@1001.zicmama.com ls -al '{}' \; > /tmp/owner_correct.list

Puis regarder /tmp/owner_correct.list

Aucun commentaire: