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
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:
Enregistrer un commentaire