Windows TIPS
| [System Environment] |
caclsコマンドでACLを編集する(SDDL編)
|
 |
| ■ |
Windows Server 2003のcaclsコマンドでは、SDDL文字列を使って設定を行うことができる。 |
| ■ |
ACLをSDDL形式で表示するには/sオプションを指定する。 |
| ■ |
ACLをSDDL形式で設定するには/s:オプションに続けてSDDL文字列を指定する。 |
|
|
TIPS「caclsコマンドの出力の見方」「caclsコマンドでACLを編集する」では、コマンド・プロンプト上でcacls.exeコマンドを使って、ファイルのアクセス権を表示したり、変更したりする方法について解説した。そこでは、アカウント名とアクセス権を直接指定して操作する方法を紹介している。しかしこの方法では、設定できるアクセス権(属性)に制限があり、すべての属性を設定することはできなかった。
だがWindows Server 2003のcacls.exeコマンドには、これ以外に、「SDDL(Security Descriptor Definition Language)」文字列を使ってアクセス権を設定したり、確認したりする方法が用意されている。SDDLは、セキュリティ設定において利用されるセキュリティ記述子の表現形式の1つであり、システム管理でもときどき利用される表記方法である。SDDLについては、別記事の「セキュリティ設定を記述するSDDL文字列とは?」を参照していただきたい。
本TIPSでは、このSDDLを使ってファイルのアクセス権を確認したり、変更したりする方法を紹介する。SDDLを利用することにより、すべての権限を指定することができる。
SDDLによるACLの表示方法
cacls.exeコマンドで、SDDL形式でACLを表示させるには、「/S」オプションを指定すればよい。このオプションは、Windows Server 2003のcacls.exeコマンドでのみ指定可能である。
C:\Data>cacls file01.txt …通常形式でACLを表示
C:\Data\file01.txt BUILTIN\Administrators:F
NT AUTHORITY\SYSTEM:F
BUILTIN\Users:R
C:\Data>cacls file01.txt /s …SDDL形式でACLを表示
C:\Data\file01.txt "D:AI(A;ID;FA;;;BA)(A;ID;FA;;;SY)(A;ID;0x1200a9;;;BU)" …結果 |
結果のSDDL文字列を先頭から順に分解して解説すると、次のようになる。
- D―DACL(随意アクセス制御リストDACL)
- AI―継承によって作成されたACL
- (A;ID;FA;;;BA)―Administratorsにフル・コントロール権限
- (A;ID;FA;;;SY)―Systemにフル・コントロール権限
- (A;ID;0x1200a9;;;BU)―Usersに読み出しと実行権限(0x1200a9)
SDDLによるACLの設定方法
SDDL表記を使ってACLを設定するには、/SオプションにSDDL文字列を付けて実行する。なおこのオプションを使用する場合、既存のACLはすべて削除されて置き換えられるので、必要なACEをすべて指定しておかないと、ファイルやフォルダがアクセスできなくなるので注意が必要である。以下の例では、既存のACEを削除し、代わりに、Everyone(“WD”)に読み出し(“FR”)の許可を、Users(“BU”)にフルアクセス権(“FA”)の許可をそれぞれ設定している。
C:\Data>cacls file01.txt /s:"D:(A;;FA;;;BU)(A;;FR;;;WD)" …SDDL形式で設定
よろしいですか (Y/N)?Y …続行メッセージの入力
処理ファイル: C:\Data\file01.txt
C:\Data>cacls file01.txt /s …設定内容の確認
C:\Data\file01.txt "D:AI(A;;FA;;;BU)(A;;FR;;;WD)(A;ID;FA;;;WD)"
…3つ目のACEは親フォルダから継承している属性
|
|
この記事と関連性の高い別のWindows TIPS |
|
|
generated by
|
|
TechTargetジャパン
Windows Server Insider フォーラム 新着記事
キャリアアップ

**先週の人気講座ランキング**
〜 Android編 〜