caclsとその後継であるicaclsは、
Microsoft Windowsで利用可能なコマンドラインユーティリティです。これらのツールは、ファイルやフォルダのセキュリティ記述子を表示したり、修正したりする際に使用されます。
アクセス制御リスト(ACL)とは、ファイルやフォルダなどのセキュリティ保護可能なオブジェクトに対して、誰がどのような権限を持っているかを定義したリストです。このリストによって、どのユーザーがファイルにアクセスできるか、あるいは変更できるかを制御し、セキュリティを維持することができます。
cacls
`cacls.exe`は、Windows NT 3.5およびそれ以降のバージョンで提供されていたコマンドラインエディタで、
ディレクトリとファイルのセキュリティ記述子を編集するために使用されました。しかし、このツールは現在では廃止されており、マイクロソフトはより新しいユーティリティを提供しています。
caclsの後継ユーティリティ
`cacls`の機能を拡張し、NTFSファイルシステムのバージョン3.0導入に伴う変更に対応するため、以下のユーティリティが導入されました。
- - xcacls.exe: Windows 2000以降に対応しており、実行、削除、所有権の取得など、より高度な機能を提供します。
- - xcacls.vbs: `xcacls.exe`のスクリプト版です。
- - fileacl.exe: ファイルのアクセス制御リストを操作するためのツールです。
- - icacls.exe: Windows Server 2003 SP2以降に搭載されたツールで、ファイルやフォルダのアクセス制御リストの表示、修正、バックアップ、復元が可能です。また、Windows Vista以降では整合性レベルと所有権の設定もできます。
- - SubInAcl.exe: ファイル、サービス、レジストリキーなど、さまざまなオブジェクトの権限設定や置換が可能なリソースキットユーティリティです。
- - Windows PowerShell: `Get-Acl`、`Set-Acl`などのコマンドレットを利用して、アクセス制御リストを操作できます。
icacls
`icacls`(Integrity Control Access Control Listの略)は、Windows Server 2003 Service Pack 2以降に搭載されているインボックスコマンドラインユーティリティです。`icacls`は、ファイルやフォルダの
アクセス制御リストを表示、修正、バックアップ、復元するだけでなく、Vista以降で整合性レベルと所有権を設定できます。ただし、`cacls`の完全な後継ではなく、セキュリティ記述子定義言語の文法には直接対応していません(`/restore`オプション経由のみ)。
icaclsの問題点
`icacls`のすべてのバージョンには、保護された
アクセス制御リストやオブジェクトに対して、以下のような重大なバグが存在することが知られています。
- - 保護を無視する。
- - 保護をリセットしたり破壊したりする。
- - 親からオブジェクトや子に継承可能な権限を適用または伝達してしまう。
関連事項
セキュリティに関連するツールや概念については、以下も参照してください。
- - FileACL: ファイルアクセス制御リストを操作するツールです。
- - SetACL: ACLをより詳細に制御できるサードパーティ製のツールです。
- - chmod: LinuxやUnix系OSで使用されるファイルパーミッション変更コマンドです。
脚注
上記の情報は、Windowsのセキュリティ設定やファイルアクセス制御に関する理解を深める上で役立ちます。
参考文献