NTFSについて考えているときに、興味深い考えが浮かびました。
NTFSは、ハードリンク、シンボリックリンク、および代替データストリームをサポートします。 ADSを別のファイルへのリンクにすることは可能ですか?逆に、リンクに接続されている代替データストリームは、リンク自体に属しているのですか、それとも基になるファイルシステムデータに属しているのですか?
Is it possible for an ADS to be a link to another file?
AFAIK、これは不可能です。
代替データストリームは、ファイルのMFTエントリで文字通り代替データ属性を指定します。 2つのMFTエントリが両方とも同じクラスタに指定されている場合、これは実行できません。
Conversely, do the Alternate Data Streams attached to a link belong to the link itself or to the underlying filesystem data?
代替データストリームは、リンク自体ではなくMFTに記録されます(ディレクトリエントリを意味すると想定しています)。
私はそれを試してみました。これが私の結果です:
> echo "test" > test.txt
> echo "ads of test" > test.txt:myads
> mklink /H test2.txt test.txt
Feste Verknüpfung erstellt für test2.txt <<===>> test.txt
# In English: Hard link created for test2.txt
> more < test2.txt:myads
"ads of test"
> mklink test3.txt test.txt
symbolische Verknüpfung erstellt für test3.txt <<===>> test.txt
# In English: symbolic link created for test3.txt
> more < test3.txt:myads
"ads of test"
この動作は、ADSがディレクトリエントリではなくファイルシステムデータに添付されていることを示しています。