Windowsのcaclsコマンドが出力する内容の意味や見方を知る:Tech TIPS
コマンド・プロンプト上で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コマンドの使い方
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の表示
caclsに続けて、ファイル名やフォルダ名(ワイルドカードも利用可)を指定すると、それらのACLが1ファイル/フォルダずつ表示される。
例えば、次のようなACLが設定されたフォルダがあるとする。
あるフォルダに設定されたACLの例
これは、user01というフォルダに対して、ユーザーuser01/Administratorsグループ/Usersグループにフルコントロール、OtherGroup1にアクセス拒否、OtherGroup2に読み取り許可、などの設定を行った場合の例である。
(1)ここが「拒否」の場合は指定された操作やアクセスが(明示的に)禁止され、「許可」の場合は、その操作が許可される。
(2)対象となるグループやユーザー名。「CREATOR OWNER」は作成者という意味。
(3)アクセス許可。「フル コントロール」はあらゆる操作が該当する。「特殊」は、各権限を自由に組み合わせたものであり、実際の設定内容は[編集]ボタンを押すと確認できる。
(4)フォルダの場合は、このフォルダに設定されているACLなどを、サブフォルダへと継承させることができる。この「適用先」は、実際にどのレベルのフォルダまで継承できるかを表す。ファイルの場合はこの属性はない。
このフォルダの内容をcaclsコマンドで出力させると、次のようになる。
caclsによるACLの表示例
これは、上の画面と同じACLを、caclsコマンドで表示させた場合の例である。このフォルダのACLには、全部で8つのACEが含まれていることが分かる(これは上のプロパティ画面のACEの数と一致している)。
(1)対象となるファイル名やフォルダ名。
(2)ACEの対象アカウント名。ユーザー名やグループ名、組み込みのシステム・アカウント名など。
(3)フォルダの場合は、このようにACEの適用先が「(OI)」や「(CI)」「(IO)」という文字列で表示される(「このフォルダにのみ適用」の場合は表示されない)。
(4)ACEの種類が「許可」の場合は何も表示されないが、「拒否」の場合はこのように「(DENY)」と表示される。
(5)代表的なアクセス権については「F」「R」「W」「C」などと省略形で表示されるが、そうでない場合は個別のアクセス権が次行以降に列挙される。
(6)列挙された個別のアクセス権。
(7)組み込みアカウントの例。先頭に「BUILTIN\〜」と表示される。
(8)フルコントロールの場合はこのように「F」と表示される。
(9)Everyoneアカウント。
(10)「R」は読み出しのみ可能という意味。
(11)こちらは、このフォルダに対するアクセス権。このフォルダは「BUILTIN\Users」グループからフルコントロールでアクセス可能。
(12)こちらは、このフォルダおよびサブフォルダなどに対するアクセス権。このフォルダ中に作成されるファイルやフォルダは、「BUILTIN\Users」グループに対して読み取りの権限を持つ。
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 | アクセス権なし |
アクセス権の省略型表示 |
■この記事と関連性の高い別の記事
- Windowsでファイルやフォルダのアクセス権をリセットして親フォルダから継承させる(TIPS)
- WindowsのcaclsコマンドでACLを編集する(TIPS)
- Windowsのアクセス制御リストACLとは?(TIPS)
- icaclsコマンドでアクセス制御リスト中のメンバーを検索する(TIPS)
- Windowsのセキュリティ設定を記述するSDDL文字列とは?(TIPS)
- icaclsコマンドでファイルのアクセス制御リストACLを保存/復元する(TIPS)
- showaclsコマンドでファイルのセキュリティ情報を表示させる(TIPS)
Copyright© Digital Advantage Corp. All Rights Reserved.