Windows TIPS
[System Environment]
  Windows TIPS TOPへ
Windows TIPS全リストへ
内容別分類一覧へ

subinaclコマンドでオブジェクトのセキュリティ情報を表示させる(subinaclの基本)

解説をスキップして操作方法を読む

デジタルアドバンテージ 打越 浩幸
2010/07/16
対象OS
Windows 2000
Windows XP
Windows Server 2003
Windows Vista
Windows Server 2008
Windows 7
Windows Server 2008 R2
Windows OSには、ファイルやレジストリ、プロセス、共有、ユーザー/グループ名など、さまざまなオブジェクトが含まれる。これらにはすべてアクセス権などが設定されている。
ファイル以外のオブジェクトのセキュリティ情報を確認・操作するにはsubinaclコマンドが利用できる。
subinaclでは、ファイルを対象にする場合は/file 〜、レジストリを対象にする場合は/regkey 〜などのオプションを指定する。

解説

 ファイルやフォルダの持つアクセス権(アクセス制御リスト)や所有者などの情報を確認するには、エクスプローラでセキュリティ・プロファイルを表示させたり、caclsやicacls、xcaclsコマンドを使う方法がある。具体的な方法については、次のTIPSを参照していただきた。

 これらのコマンドではファイルやフォルダのアクセス権情報を操作していたが、Windows OSでは、ファイル以外のさまざまなオブジェクトに対してもこのようなアクセス権が設定されており、それに基づいて厳密にアクセス制御が行われ、システムのセキュリティが確保されている。通常はファイルやフォルダ以外のアクセス権設定について考慮する必要性はほとんどないが、例えばレジストリに対するアクセス権が緩すぎるとウイルスなどに乗っ取られたりする可能性があるし、アクセス権がきつすぎるとサービスが起動できないといったトラブルになることがある。

 ファイル以外のオブジェクトにおけるアクセス権や所有者情報などを検査、変更するにはsubinacl.exeというコマンドが利用できる。このコマンドは非常に多くのサブコマンドを持つが、本TIPSではsubinaclの一番基本的な使い方として、オブジェクトのセキュリティ情報を表示させる方法について解説する。それ以外の利用法については今後別TIPSで解説する。

  操作方法

subinaclコマンドの入手

 subinacl.exeは、もともとはWindows 2000やWindows Server 2003のリソースキットで提供されていたコマンドであるが、次のページから最新版をダウンロードしてインストールするか(リソースキットのものよりも新しいので、これに更新しておくのが望ましい)、インストール済みのコンピュータからsubinac.exeファイルをコピーすれば、ほかのOSでも利用できる(ただし英語版しかない)。

subinaclのヘルプ

 subinaclコマンドは、ファイルやフォルダに限らず、レジストリやプロセス、サービス、共有、カーネル・オブジェクトなど、Windows OSに含まれるさまざまなオブジェクトのセキュリティ情報を表示したり、設定したりするコマンドである。そのため非常に多くのオプションを持っている。このコマンドの使い方を見るには、まず「subinacl /help」で概要を確認し、その後さらに、「subinacl /help /display」などのようにして詳細ヘルプを表示させる。全ヘルプを確認するには「subinacl /help /full」とする。

C:\>subinacl …引数無しで起動
SubInAcl version 5.2.3790.1180 …原稿執筆次点での最新版

Invalid Argument !
Use :
SubInacl /help to get the usage information …/helpを付けろという指示
or
SubInAcl /help syntax to understand SubInAcl syntax.

C:\>subinacl /help …ヘルプの表示(/?でも可)
SubInAcl version 5.2.3790.1180

USAGE
-----

Usage :
     SubInAcl [/option...] /object_type object_name [[/action[=parameter]...]

 /options    :
    /outputlog=FileName                 /errorlog=FileName
    /noverbose                          /verbose (default)
    /notestmode (default)               /testmode
…(以下省略)…

C:\>subinacl /help /display …/displayの使い方
SubInAcl version 5.2.3790.1180

/DISPLAY
--------

/display[=dacl|sacl|owner|primarygroup|sdsize|sddl]

display the security descriptor
You can also view part of the security descriptor. /display=dacl will
display the discretionary acl. /display=sddl will display the security
using the Win32 SDDL security descriptor string format (see Platform SDK)
…(以下省略)…

C:\>subinacl /help /full …フルヘルプ表示。長大なのでファイルにリダイレクトして保存して閲覧するとよい
SubInAcl version 5.2.3790.1180

USAGE
-----

Usage :
     SubInAcl [/option...] /object_type object_name [[/action[=parameter]...]

 /options    :
    /outputlog=FileName                 /errorlog=FileName
    /noverbose                          /verbose (default)
…(以下省略)…

subinaclでファイルやフォルダのセキュリティ情報を確認する

 subinaclの操作対象はファイルやフォルダに限らない。そのため、対象となるオブジェクトを特定するために、「/file *.obj」や「/share \\server1\shr1」といった特別な表記方法を利用する。subinaclで指定可能なオブジェクトには次のようなものがある。

表記 オブジェクト
/file ファイル
/subdirectories サブフォルダ
/service サービス
/keyreg レジストリの特定のキー
/subkeyreg レジストリのサブキー
/clustershare クラスタ共有
/kernelobject カーネル・オブジェクト(ミューテックスやセクション、イベント・オブジェクトなど)
/metabase IISのメタベース
/printer プリンタ共有
/process プロセス
/onlyfile 特殊ファイル(パイプなど)も含むファイル
/share 共有
/samboject SAMオブジェクト(ユーザーやグループ名など)
subinaclで指定可能なオブジェクト・タイブ表記

 単に特定のファイルの情報を見るだけなら、「/file <ファイル名>」とすればよい。ただしcacls.exeなどと違い、ファイルを対象とする場合でも、必ず先頭に/fileを付ける必要がある。

C:\>subinacl /file boot.ini …c:\boot.iniの情報の表示

==================
+File C:\boot.ini
==================
/control=0x1400 SE_DACL_AUTO_INHERITED-0x0400 SE_DACL_PROTECTED-0x1000 …ACL属性
/owner             =builtin\administrators …所有者
/primary group     =system …プライマリ・グループ
/audit ace count   =0 …監査のACE数
/perm. ace count   =3 …アクセス権のACE数
/pace =builtin\power users      ACCESS_ALLOWED_ACE_TYPE-0x0 …ACE1
    Type of access: …アクセス権のタイプ
        Read
    Detailed Access Flags : …アクセス権の詳細
        FILE_READ_DATA-0x1          FILE_READ_EA-0x8            FILE_EXECUTE-0x20
        FILE_READ_ATTRIBUTES-0x80   READ_CONTROL-0x20000        SYNCHRONIZE-0x100000
/pace =builtin\administrators   ACCESS_ALLOWED_ACE_TYPE-0x0
…(以下省略)…

 サブフォルダ以下をスキャンする場合は、/subdirectoriesタイプを指定する。

C:\>subinacl /subdirectories \windows\*

 特定の情報だけを表示したければ、/displayオプション(subinaclでは「アクション」という)を指定する。

C:\>subinacl /subdirectories \windows\* /display=owner …所有者情報のみ表示

+File C:\windows\$968930Uinstall_KB968930$
/owner             =d-advantage\hiro

+File C:\windows\$hf_mig$
/owner             =uxpc21x\administrator

+File C:\windows\$NtUninstallbasecsp$
/owner             =uxpc21x\administrator
…(以下省略)…

 レジストリの場合は/keyregや/subkeyregを指定する。

C:\>subinacl /keyreg HKEY_CURRENT_USER\Software …HKCU\Softwareの表示

===================================
+KeyReg HKEY_CURRENT_USER\Software
===================================
/control=0x0
/owner             =builtin\administrators
/primary group     =system
/audit ace count   =0
/perm. ace count   =8
/pace =d-advantage\hiroy-u      ACCESS_ALLOWED_ACE_TYPE-0x0
    Type of access:
        Full Control
…(以下省略)…

 /keyregの代わりに/subkeyregとすると、指定されたキー以下のレジストリに関する情報がすべて表示される。

 これ以外にも、共有やSAMオブジェクト(ユーザーやグループ)など、さまざまなオブジェクトのセキュリティ情報が確認できる。

C:\>subinacl /share \\127.0.0.1\c …ファイル共有の例

=====================
+Share \\127.0.0.1\c
=====================
/control=0x0
/audit ace count   =0
/perm. ace count   =1
/pace =everyone         ACCESS_ALLOWED_ACE_TYPE-0x0
        Full Control

Elapsed Time: 00 00:00:00
Done:        1, Modified        0, Failed        0, Syntax errors        0
Last Done  : \\127.0.0.1\c

C:\>subinacl /samobject administrator …ユーザー名の指定例

=========================
+SamObject administrator
=========================
/control=0x0
/owner             =builtin\administrators
/primary group     =builtin\administrators
/audit ace count   =2
/aace =everyone         SYSTEM_AUDIT_ACE_TYPE-0x2
        FAILED_ACCESS_ACE_FLAG-0x80    SUCCESSFUL_ACCESS_ACE_FLAG-0x40FAILED_ACCESS_ACE_FLAG-0x0x80
…(以下省略)…

 なお、出力が長くて見づらい場合は、「/outputlog=<ファイル名>」オプションで特定のファイルに出力させたり、/noverboseオプションで表示する情報量を少なくしたりできる(オプションは先頭に付けること)。詳細は/helpや、コマンドと同時にインストールされるヘルプ・ファイルなどを参照していただきたい。End of Article

C:\>subinacl /outputlog=c:\tmp\acllog.txt /subdirectories \windows\system32\*

「Windows TIPS」


Windows Server Insider フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Windows Server Insider 記事ランキング

本日 月間