web-dev-qa-db-ja.com

NTFSACLユーティリティ `icacls`が舞台裏でシステムパーティションを変更するのはなぜですか?

私はhddをwin7マシンに接続し、ドライブ文字I:をhddの唯一のパーティションに割り当てました。 hddは元々別のコンピューターからのものであり、「現在アクセス許可がありません...」というダイアログをすべて回避するために、icaclsを使用してすべてのACLをクリアすることにしました。

icacls I:\ /reset /t /c /lを実行しました。しばらくすると、Chromeが機能しなくなりました。Safariがクラッシュしました。問題を追跡したところ、ホームフォルダ(C:\Users内)のACLがすべて台無しになっていることがわかりました。ChromeとSafariはキャッシュフォルダに書き込めませんでした。ホームフォルダのACLを修正し、すべては問題ないように見えます。

I:ドライブで動作するように具体的に指示したときにicaclsがホームフォルダを台無しにするのはなぜですか?解決しないように/Lスイッチを入れましたシンボリックリンク。スイッチを誤解しましたか?

参考までに、ヘルプ画面の関連部分を以下に示します。

ICACLS name /reset [/T] [/C] [/L] [/Q]
    replaces ACLs with default inherited ACLs for all matching files.

    /T indicates that this operation is performed on all matching
        files/directories below the directories specified in the name.

    /C indicates that this operation will continue on all file errors.
        Error messages will still be displayed.

    /L indicates that this operation is performed on a symbolic link
       itself versus its target.
2
netvope

OK私は答えを見つけました...

Documents and Settingsの非表示のI:\は、C:\Usersを指すジャンクションです。ジャンクションのターゲットは、(相対パスではなく)絶対パスです。 /Lはシンボリックリンクのみを処理するため、icaclsI:\Documents and SettingsC:\Usersに解決し、そこですべてのACLをリセットします。

したがって、icaclsで作業するフォルダ内のすべてのジャンクションを調べていない限り、icaclsを使用しないでください!これにより、icaclsは実質的に役に立たなくなります。再帰的なACL変更ツール...フォルダ構造の奥深くにC:\を指すジャンクションがフォルダに含まれている場合は、理由がわからなくてもWindowsを強制終了できた可能性があります。

5
netvope