Вы спрашиваете, может ли кто-то поставить под угрозу размер файла, возвращенного статистикой путем взламывания файла каталога. Нет, это не возможно. Каталог, просто список имен файлов и inode чисел. Вся другая информация о файле (владелец, группа, режим, размер, и т.д.) содержится в inode (по крайней мере, в POSIX совместимые файловые системы), и это от того, где статистика собирает эту информацию.
Вот демонстрация редких файлов, которая является одним способом, которым может вводить в заблуждение размер:
$ 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) copied, 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
Как Вы видите, байт включают ls
и stat
покажите выделенное место, но только количество блока stat
и вывод du
даже близко к фактическому содержанию файла.
stat
, таким образом, он doesn' t имеют значение, как это физически хранится в файловой системе. Таким образом, насколько я вижу, это doesn' t ставят под угрозу размер файла всегда.
– codeholic
13 April 2010 в 11:32
Почему Вы заботитесь о размере файла? Сравнение сумм MD5 скажет Вам с абсолютной уверенностью, если файл изменился или нет. Зеркальное отражение битов в файле сохранит размер файла, но могло быть совершенно другим файлом.