Windows TIPS
[System Environment]
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や、コマンドと同時にインストールされるヘルプ・ファイルなどを参照していただきたい。
C:\>subinacl /outputlog=c:\tmp\acllog.txt /subdirectories \windows\system32\*
この記事と関連性の高い別のWindows TIPS
generated by
TechTargetジャパン
Windows Server Insider フォーラム 新着記事
キャリアアップ