Ce script récupère la liste des fichiers installés sur le système, que l’on trouve dans le répertoire /var/lib/dpkg/info/*.list. A la différence de la commande ‘find . -prinf’ de fran.b, ce script récupère les informations contenues dans les paquets, et non celles du système (Qui serait sans intérêt puisque les permissions du système sont cassées). Ensuite, pour chaque paquet trouvé dans cette liste, il va :
Télécharger le paquet depuis le dépôt dans un répertoire temporaire et le décompresser.
Puis, pour chaque fichier/répertoire du paquet décompressé dans ce répertoire temporaire, récupérer les informations d’utilisateur, groupe et mode, et ajouter dans un script ‘RestorePerms.sh’ les opérations chown et chmod permettant de remettre les bons utilisateurs, groupes et droits sur les fichiers réellement installés.
Petite précision à ce sujet, le script ‘RestorePerms.sh’ créé par ce petit programme est à lancer à la racine (/) du système en tant que root.
PS : Par contre, vu la commande que te donne fran.b sur son site, il est possible (et diablement plus efficace) de remplacer toute la partie
[code] for FILE in find .
; do
USR=stat --printf="%U" $FILE
GRP=stat --printf="%G" $FILE
MOD=stat --printf="%a" $FILE
# On cree les commandes dans le script de sortie
echo "chown $USR:$GRP $FILE" >> $SCRP
echo "chmod $MOD $FILE" >> $SCRP
done[/code]
par la simple ligne
Voila. Si tu as d’autres question, n’hésites pas.