Windowsのコマンドプロンプトによるファイルのアクセス制御リスト (ACL) を表示または変更する方法(cacls)
caclsコマンド
説明 : ファイルのアクセス制御リスト (ACL) を表示または変更
cacls ファイル名 パラメータ
パラメータ
/T 現在のディレクトリとすべてのサブディレクトリにある指定されたファイルの ACL を変更します。
/L ターゲットではなくシンボリック リンク自体で動作します
/M ディレクトリにマウントされたボリュームの ACL を変更します
/S DACL の SDDL 文字列を表示します。
/S:SDDL ACL を SDDL 文字列で指定されたもので置き換えます(/E、/G、/R、/P、または /D では無効)。
/E ACL を置き換えずに編集します。
/C アクセス拒否エラーを無視して、アクセスを続行します。
/G ユーザー名:アクセス権
指定されたユーザーにアクセス権を与えます。
アクセス権: R 読み取り
W 書き込み
C 変更 (書き込み)
F フル コントロール
/R ユーザー名 指定されたユーザーのアクセス権を失効させます(/E オプションと共に使用)。
/P ユーザー名:アクセス権
指定されたユーザーのアクセス権を置き換えます。
アクセス権: N なし
R 読み取り
W 書き込み
C 変更 (書き込み)
F フル コントロール
/D ユーザー名 指定されたユーザーのアクセスを拒否します。
複数のファイルを指定するには、ワイルドカードを使用できます。
複数のユーザーを指定できます。
省略形:
CI - コンテナー継承。
ACE はディレクトリに継承されます。
OI - オブジェクト継承。
ACE はファイルに継承されます。
IO - 継承のみ。
ACE は現在のファイル/ディレクトリに適用されません。
ID - 継承済み。
ACE は親ディレクトリの ACL から継承されました。
ACLとは、フォルダやファイルの権限の詳細設定のことを言う。
ちなみに、以下の画面の設定(セキュリティの詳細設定)。
尚、同様のことができるコマンドで、icaclsコマンドもある。
サンプルソース
ファイルのアクセス制御リスト (ACL) を表示
例えば以下の設定をコマンドで表示する。
(入力)
cacls e:\test.txt
(出力)
e:\test.txt BUILTIN\Administrators:F
NT AUTHORITY\SYSTEM:F
NT AUTHORITY\Authenticated Users:C
BUILTIN\Users:R
サンプルソース
フォルダのアクセス制御リスト (ACL) を表示
例えば以下の設定をコマンドで表示する。
(入力)
cacls e:\folder
(出力)
e:\folder BUILTIN\Administrators:F
BUILTIN\Administrators:(OI)(CI)(IO)F
NT AUTHORITY\SYSTEM:F
NT AUTHORITY\SYSTEM:(OI)(CI)(IO)F
NT AUTHORITY\Authenticated Users:C
NT AUTHORITY\Authenticated Users:(OI)(CI)(IO)C
BUILTIN\Users:R
BUILTIN\Users:(OI)(CI)(IO)(特殊なアクセス:)
GENERIC_READ
GENERIC_EXECUTE
サンプルソース
ファイルのアクセス制御リスト (ACL) を上書き変更
例えば、e:\text.txt のusersの権限をフルアカウントに変更する。
変更をする場合は、コマンドプロンプトを右クリックの管理者実行をする必要がある。
入力前の設定
e:\test.txt BUILTIN\Administrators:F
NT AUTHORITY\SYSTEM:F
NT AUTHORITY\Authenticated Users:C
BUILTIN\Users:R
(入力)
cacls e:\test.txt /g users:f
(出力)
よろしいですか (Y/N)?y
処理ファイル: e:\test.txt
出力後の設定
e:\test.txt BUILTIN\Users:F