%Windows% に対し cacls.exe を打ってみる で話題になったのですが、Administrator には全く扱えないものはあるか?ということですが、100% 無いとは言い切れませんが、ほぼすべてのものが扱えると思っています。
というのは、Vista でも BUILT IN\Administrators に対し、SeTakeOwnershipPrivilege (ファイルとその他のオブジェクトの所有権の取得) を持っているからです。
この特権はものすごい強力で、その名の通り object の「所有権」を ACL (Access Control List)に拘わらず置き換えることができます。
# 似たような特権に SeBackupPrivilege (ファイルとディレクトリのバックアップ) があるんですが、これに関しては後日(気が向いたらっておい)。
この「ACL に拘わらず」というのが重要です。
というのは ACE (Access Control Entry) の rights (権利) に WRITE_OWNER があるからです。
WRITE_OWNER ですが、これがあれば文字通り「所有権の取得」ができます。
ただし、SeTakeOwnershipPrivilege を有している user であれば WRITE_OWNER 権限の有無に拘わらず、所有権を取得できます。
ここら辺を調査する場合、正直 Windows Vista はお勧めしません。
というのは最近いろいろ書いてますが、Windows Vista で UAC が有効な状態だと CreateRestrictedToken を使って制限された access token を使われるため余計わかりにくくなるからです。
ちなみに Windows Vista でも %WINDIR% および System Volume Information に対しても、所有権を置き換えることにより ACL を編集可能なことは確認しました。
# UAC により access token が制限されている可能性があるため、確認は「管理者として実行」で行うことをお勧めします。