ファイルやフォルダのアクセス権を確認するには、showaclsコマンドが利用できる。ただしこのコマンドではアクセス権を変更することはできない。showaclsコマンドはリソースキットに含まれている。
対象:Windows XP、Windows Server 2003
ファイルやフォルダのアクセス権情報(ACL:アクセス制御リスト情報)を表示させるコマンドとして、Tech TIPS「caclsコマンドの出力の見方」「icaclsコマンドでアクセス制御リスト中のメンバーを検索する」「subinaclコマンドでオブジェクトのセキュリティ情報を表示させる(subinaclの基本)」などのツールを紹介してきた。これ以外にも、showacls.exeというコマンドがあるので、本Tech TIPSで紹介する。
showacls.exeコマンドは、Windows NTやWindows 2000、Windows Server 2003のリソースキットで提供されているツールである(そのほかのOSでも、実行するだけなら可能)。caclsやicacls、subinaclsなどと違い、ACL(アクセス制御リスト)の内容を表示する機能しかないが、その分表示もシンプルで分かりやすい。
showaclsコマンドはWindows 2000、Windows Server 2003のリソースキットに含まれているので、利用したい場合はまずリソースキットを入手して、インストールする。入手方法についてはTech TIPS「Windows OS向けリソースキットツールを入手する」を参照していただきたい。
showaclsに/?オプションを付けて実行すると、簡単なヘルプが表示される(オプションなしで実行するとカレントフォルダのACLが表示される)。
C:\>showacls /? ……ヘルプの表示
Usage:
showacls /s /u:domain\user filespec
/s include sub-directories
/u specify domain\user
ACE header values:
0x1 - Object Inherit ACE
0x2 - Container Inherit ACE
0x4 - No Propagate Inherit ACE
0x8 - Inherit Only ACE
Access mask values:
A Generic All l List Directory
R Generic Read d Read Data
W Generic Write S Synchronize
X Generic Execute r File Read
w File Write a File Append
fx File Execute D Delete
rE Read EA rW Write EA
C:\>
見て分かるように、オプションはほとんどない。
showaclsに対象となるフォルダやファイルを指定して実行すると、そのファイルやフォルダに割り当てられているACLが表示される。c:\Documents and Settings\All Usersと、カレントフォルダ(C:\Documents and Settings\user001)のACLを見てみよう。
※c:\Documents and Settings\All UsersのACLの表示
C:\Documents and Settings\user001>showacls "c:\Documents and Settings\All Users"
c:\Documents and Settings\All Users
NT AUTHORITY\SYSTEM Special Access [A] ……5つのエントリが表示されている
BUILTIN\Administrators Special Access [A]
BUILTIN\Users Special Access [RX]
BUILTIN\Power Users Special Access [DdSrwarEwEfx]
Everyone Special Access [RX]
※カレントフォルダのACLの表示
C:\Documents and Settings\user001>showacls .
C:\Documents and Settings\user001\
EXAMPLE-DOM\user001 Special Access [A] ……3つのエントリが表示されている
NT AUTHORITY\SYSTEM Special Access [A]
BUILTIN\Administrators Special Access [A]
※[参考]caclsコマンドによる、同じフォルダのACLの表示例
C:\Documents and Settings\user001>cacls .
C:\Documents and Settings\user001 EXAMPLE-DOM\user001:F
NT AUTHORITY\SYSTEM:F
BUILTIN\Administrators:F
EXAMPLE-DOM\user001:(OI)(CI)(IO)F
NT AUTHORITY\SYSTEM:(OI)(CI)(IO)F
BUILTIN\Administrators:(OI)(CI)(IO)F
caclsコマンドなどと違って、表示形式は非常にシンプルである(アクセス権の意味についてはTIPS「アクセス制御リストACLとは?」参照)。特に(OI)や(CI)などといった、継承に関する情報は表示されていないので、理解しやすいだろう。なおエントリ数が違うのは(最後のcaclsの例では5エントリ表示されているが、showaclsでは3エントリしか表示されていない)、いくつかのACE(ACL中のエントリ)が継承の有無で分割して表示されているからである。エクスプローラでファイルのプロパティにあるセキュリティ情報を見ると、実際には3エントリしか表示されないので、showaclsの方が分かりやすいかもしれない。
さてshowaclsコマンドの結果には、「Special Access [A]」や「Special Access [DdSrwarEwEfx]」という表示があるが、これは個別のアクセス権を表している。その意味は次のとおりである。なお「Special」は個別のアクセス権の集合であることを示す。ほかにも代表的なものには「Full Control」や「Read」「Change」などの名称が付けられている。
略字 | 意味 |
---|---|
A | ジェネリックオール |
R | ジェネリック読み出し可能 |
W | ジェネリック書き込み可能 |
X | 実行可能 |
l | リスト可能 |
d | データ読み出し |
S | シンクロナイズ |
r | ファイル読み出し可能 |
w | ファイル書き込み可能 |
a | アペンド(追加)可能 |
fx | ファイル実行可能 |
D | 削除可能 |
rE | 拡張属性の読み出し可能 |
wE | 拡張属性の書き込み可能 |
ALL | フルコントロールの場合は「Full Control [ALL]」のように表示される |
(DENIED) | 許可エントリではなく、拒否エントリであることを表す |
showaclsの出力におけるアクセス権文字の意味 |
ここでは訳してあるが、これらは実際にはアクセス権を示すプログラム上のビット定義に基づいている。例えばRは「GENERIC_READ」という属性(定数定義)に相当する。
先ほどの例にある「DdSrwarEwEfx」は、「D」「d」「S」「r」「w」「a」「rE」「wE」「fx」を合成したものを表す。
アクセスを拒否するエントリがある場合は、次のように、先頭に(DENIED)と表示される。
※拒否エントリがある場合の例
X:\CompanyData>showacls X:\CompanyData
X:\CompanyData
EXAMPLE-DOM\outerstaff (DENIED) Full Control [ALL] ……拒否エントリ
BUILTIN\Administrators Full Control [ALL] ……以下は許可エントリ
EXAMPLE-DOM\Board Full Control [ALL]
EXAMPLE-DOM\Staffs Change [RWXD]
NT AUTHORITY\SYSTEM Full Control [ALL]
■この記事と関連性の高い別の記事
Copyright© Digital Advantage Corp. All Rights Reserved.