NTFS альтернативные потоки данных включены. и.. папки
Я играл с NTFS ADS и обнаружил, что не могу использовать ни один из них на. и.. папки
Я старался:
- ..: $ I30: $ INDEX_ALLOCATION
- ..:: $ INDEX_ALLOCATION
- ..:: $ INDEX_ROOT
- ..: $ DATA
у кого-нибудь есть понимание того, почему это так? есть ли способ обойти это?
Спасибо
3 ответа
, и.. не являются настоящими папками, это просто символы для "этой папки" или "родительской папки", поэтому, конечно, вы не можете прикрепить к ним ADS.
Добавляя к тому, что написано, это и
..
являются специальными символами, представляющими текущую и родительскую папки соответственно, если вы пишете в ADS папки (например,
echo 123 > myfolder:streamname
), то запуск внутри покажет вам, что.:streamname:$DATA существует и запущен
dir /r
из подпапки
myfolder
покажет
..:streamname:$DATA
по аналогии.
В
$INDEX_ALLOCATION
тип атрибута - тот, который используется для папок (например,
echo 123 > newfolder::$INDEX_ALLOCATION
), и может использоваться для создания папок, но вы не можете просто выводить в него некоторые данные (внутренне NTFS хранит данные каталога внутри него).
echo 123 > :streamname:$DATA
напишет это в
.
, и он также будет виден из родительского каталога.
Создание каталога с потоками требует двух шагов:
1.Создайте каталог:
mkdir J:\ads-test:$I30:$INDEX_ALLOCATION
2. Создайте поток для этого каталога:
echo xyz > ads-test:StreamName:$DATA
Теперь вы можете перечислить и увидеть каталог stream-
J:\>dir /R
07/20/2022 03:49 PM <DIR> ads-test
6 ads-test:StreamName:$DATA