問題のあったファイルのアクセス権をcaclsで確認すると以下のようになる。
C:\fuga>cacls hoge.txt
C:\fuga\hoge.txt C9CX9EGCXZAIOJW\Owner:F
NT AUTHORITY\SYSTEM:F
BUILTIN\Administrators:F
同様に問題のないファイルのアクセス権を確認すると以下のようになる。つまり、問題のあったファイルにEveryoneの変更権とBUILTIN\Usersの読み取り権を与えればよいということがわかる。
C:\fuga>cacls test.txt
C:\fuga\test.txt Everyone:C
BUILTIN\Users:R
C9CX9EGCXZAIOJW\Guest:F
NT AUTHORITY\SYSTEM:F
BUILTIN\Administrators:F
Everyoneの変更権を与えるには以下のようにする。
C:\fuga>cacls hoge.txt /P Everyone:C よろしいですか (Y/N)?Y 処理ファイル: C:\fuga\hoge.txt
ワイルドカードを使うことも出来る。
C:\fuga>cacls * /P Everyone:C よろしいですか (Y/N)?Y 処理ファイル: C:\fuga\hoge.txt 処理ファイル: C:\fuga\hoge0.txt 処理ファイル: C:\fuga\hoge1.txt 処理ファイル: C:\fuga\hoge2.txt 処理ファイル: C:\fuga\hoge3.txt
C:\fuga>cacls /?
ファイルのアクセス制御リスト(ACL) を表示または変更します。
CACLS ファイル名 [/T] [/E] [/C] [/G ユーザー名:アクセス権]
[/R ユーザー名 [...]] [/P ユーザー名:アクセス権 [...]]
[/D ユーザー名 [...]]
ファイル名 ACL を表示します。
/T 現在のディレクトリとすべてのサブディレクトリにある
指定されたファイルの ACL を変更します。
/E ACL を置き換えずに、ACL を編集します。
/C アクセス拒否エラーを無視して、ACL の変更を続行します。
/G ユーザー名:アクセス権
指定されたユーザーにアクセス権を与えます。
アクセス権: R 読み取り
W 書き込み
C 変更 (書き込み)
F フル コントロール
/R ユーザー名 指定されたユーザーのアクセス権を失効させます。
(/E オプションと共に使用)。
/P ユーザー名:アクセス権
指定されたユーザーのアクセス権を置き換えます。
アクセス権: N なし
W 書き込み
R 読み取り
C 変更 (書き込み)
F フル コントロール
/D ユーザー名 指定されたユーザーのアクセスを拒否します。
複数のファイルを指定するには、ワイルドカードを使用できます。
複数のユーザーを指定できます。
省略形:
CI - コンテナ継承。
ACE はディレクトリに継承されます。
OI - オブジェクト継承。
ACE はファイルに継承されます。
IO - 継承のみ。
ACE は現在のファイル/ディレクトリに適用されません。