コマンド・プロンプト上でACLの内容を操作/確認するには、cacls.exeコマンドが利用できる。代表的なアクセス権は「F」「W」「W」「C」などで表される一方で、特殊なアクセス権の場合は個別に列挙される。フォルダの場合は、適用先が「(OI)」「(CI)」「(IO)」という文字列で表される。
対象OS:Windows 2000/Windows XP/Windows Server 2003
右の関連記事では、Windows OS(正確にはNTFS)の持つファイルのアクセス制御リスト(Access Control List、以下ACL)について解説した。これらの記事では、ACLの概要や「有効なACL」の確認方法などについて説明しているので、参考にしていただきたい。
ACLの設定や確認には、エクスプローラの[プロパティ]ダイアログを利用するのが一般的であるが、コマンド・プロンプト上で実行したい場合もある。多数のファイルやフォルダのACLをまとめて確認したり、設定を変更したりするには、CUIのツールの方が便利だからだ。
コマンド・プロンプト上でACLの内容を確認したり、設定し直したりするには、cacls.exeというコマンドが利用できる(サポート・ツールにはxcacls.exeという、ほぼ同等の機能を持つスクリプトも用意されている)。本TIPSでは、cacls.exeコマンドの出力の見方(表示されたACLの意味)について解説する。ACLを設定/変更する方法については、右上の関連記事を参照していただきたい。
cacls.exeコマンドは、ファイルやフォルダに対して設定されているACLの内容を確認したり、変更したりするために利用するコマンドラインのツールである。ACLは(複数の)ACE(Access Control Entry、アクセス制御エントリ)の組み合わせで構成されているが、それらACEの内容をすべて表示させたり、ACEを追加/削除したり、既存のACEの内容を編集したりすることができる。だが、このコマンドの出力形式はやや分かりづらいので、本TIPSで解説する。
caclsコマンドを引数なしで実行すると、次のように使い方が表示される。
C:\>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 は現在のファイル/ディレクトリに適用されません。
caclsに続けて、ファイル名やフォルダ名(ワイルドカードも利用可)を指定すると、それらのACLが1ファイル/フォルダずつ表示される。
例えば、次のようなACLが設定されたフォルダがあるとする。
このフォルダの内容をcaclsコマンドで出力させると、次のようになる。
caclsの結果は次のようになっている。
最初に(一番左に)表示されているのが、対象となるファイルやフォルダの名称である((1))。この例では、C:\Folder\user01というフォルダのACLを表示させている。
その右に表示されているのが、ACLを構成する各ACEの要素である。基本的なフォーマットは、「ACEのアカウント名:アクセス権」か、「ACEのアカウント名:ACEの適用先 アクセス権」となる。ACEは1行ずつ表示されるが、上の(6)のように、特殊なアクセス権では複数行にまたがって表示されることがある。
■アカウント名((2))
アカウント名は、ローカルのコンピュータ上のアカウントの場合は「コンピュータ名\アカウント名」となり、ドメイン・アカウントの場合は「ドメイン\アカウント名」となる。
■ACEの適用先((3))
このACEの適用先という情報は、フォルダの場合にしか存在しないものであり、先のセキュリティ画面では、(4)の「適用先」という欄に相当する。ここには「(OI)」や「(CI)」「(IO)」という文字列(およびその組み合わせ)が表示されているが、それぞれ、次のような意味を持っている。
表示名 | 意味 |
---|---|
(OI) | Object Inheritの略。このフォルダ(この例ではuser01フォルダ)中に作成されたファイルにのみ適用する。適用先の「このフォルダとファイル」に相当 |
(CI) | Container Inheritの略。このフォルダ中に作成されたサブフォルダにのみ適用する |
(IO) | Inherit Onlyの略。このフォルダには適用せず、その中に作成されたファイルやフォルダにのみ適用する |
(IO)(CI) | このフォルダにのみ適用する |
(OI)(CI)(IO) | このフォルダ、サブフォルダ、およびファイルに適用する |
(CI)(IO) | サブフォルダにのみ適用する |
(OI)(IO) | ファイルにのみ適用する |
(なし) | このファイルやフォルダにのみ適用し、サブフォルダへは適用しない |
ACEの適用先文字列の意味 フォルダの場合は、このように、ACEをどこに適用するかを指定するための文字列が表示される。 |
■アクセス権
そのファイルやフォルダに適用されるアクセス権。ただし先頭に「(DENY)」という表示が付いている場合は((4))、その操作が拒否される。アクセス権は、実際には10個以上の個別の権限の集合であるが、代表的なものについては以下のように1文字の省略形が用意されている。
表示 | 意味 |
---|---|
F | フルコントロール。すべての操作が対象となる |
W | 書き込み可能 |
R | 読み出しのみ可能 |
C | 変更(書き込み)可能 |
N | アクセス権なし |
アクセス権の省略型表示 |
■この記事と関連性の高い別の記事
Copyright© Digital Advantage Corp. All Rights Reserved.