Est-ce que la taille du file returnnée par la stat est compromise?

Je veux m'assurer que personne n'a changé de file. Pour ce faire, je veux non seulement vérifier la sum MD5 du file, mais aussi vérifier sa taille, car, pour ma compréhension, cette vérification simple supplémentaire peut compliquer la falsification de plusieurs numbers.

Puis-je faire confiance à la taille que la stat revient? Je ne veux pas dire si des modifications ont été apscopes à la stat . Je ne vais pas si profondément. Mais, par exemple, peut-on compromettre la taille du file que la stat renvoie en piratant le file d'annuaire? Ou par des moyens similaires, qui ne nécessitent pas de privilèges de superuser?

C'est Linux.

Vous requestz si quelqu'un peut compromettre la taille du file renvoyé par la stat en piratant le file d'annuaire . Non, ce n'est pas possible. Le directory est simplement une list de noms de files et de nombres d'inodes. Toutes les autres informations sur le file (propriétaire, groupe, mode, taille, etc.) sont contenues dans l'inode (au less dans les filesystems compatibles avec POSIX) et c'est à partir de laquelle la stat collecte cette information.

Voici une démo de files clairsemes qui est une manière unique pour tromper:

 $ dd if=/dev/zero of=sparse.out bs=512 seek=100000 count=0 0+0 records in 0+0 records out 0 bytes (0 B) copyd, 7.5053e-05 s, 0.0 kB/s $ echo hi>>sparse.out $ ls -l sparse.out -rw-r--r-- 1 user group 51200003 2010-04-13 02:09 sparse.out $ stat sparse.out File: `sparse.out' Size: 51200003 Blocks: 24 IO Block: 4096 regular file Device: 802h/2050d Inode: 1111111 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 1111/ user) Gid: ( 1111/ group) Access: 2010-04-13 02:09:11.000000000 -0500 Modify: 2010-04-13 02:09:09.000000000 -0500 Change: 2010-04-13 02:09:09.000000000 -0500 $ hexdump -C sparse.out 00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 030d4000 68 69 0a |hi.| 030d4003 $ du sparse.out 12 sparse.out 

Comme vous pouvez le voir, le nombre d'octets dans ls et la stat montre l'espace alloué, mais seulement le nombre de blocs de stat et la sortie de du sont même proches du contenu réel du file.

Pourquoi vous souciez-vous de la taille du file? La comparaison des sums MD5 vous indiquera avec une certitude absolue si le file a changé ou non. Flipping bits dans le file conservera la taille du file, mais pourrait être un file complètement différent.