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

subinaclでアクセス制御リスト中のメンバーを変更する

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

デジタルアドバンテージ 打越 浩幸
2010/08/20
対象OS
Windows 2000
Windows XP
Windows Server 2003
Windows Vista
Windows Server 2008
Windows 7
Windows Server 2008 R2
ファイルやフォルダ、レジストリなどのオブジェクトに対するアクセス権は、アクセス制御リストACLで管理されている。
ACLのエントリ中に含まれるメンバーを変更(置換)するには、subinaclコマンドを利用する。
削除済みアカウントを変更する場合は、SID形式で指定する。

解説

 TIPS「caclsコマンドでACLを編集する」「icacls/subinaclでアクセス制御リストからメンバーを削除する」では、アクセス制御リスト(以下ACL)において、特定のメンバー名が含まれるエントリを削除する方法を紹介した。本TIPSではこの応用として、削除ではなく、別のアカウントに変更する方法を紹介する。人事異動などでセキュリティ設定を変更する場合や、すでに削除してしまったユーザーやグループ・アカウントが含まれるエントリを、別のユーザー/グループに置き換えたい場合に利用できる。

 ACLのエントリ中のメンバーを変更(置換)するには、subinaclコマンドを利用する。subinaclコマンドの入手方法は、TIPS「subinaclコマンドでオブジェクトのセキュリティ情報を表示させる(subinaclの基本)」を参照するか、以下のリンク先からダウンロードしていただきたい。

  操作方法

 subinaclコマンドで特定のユーザー/グループ・アカウントが含まれるエントリを削除するには、/replaceオプションを利用する。

C:\>subinacl /help /replace ……ヘルプの表示
SubInAcl version 5.2.3790.1180

/REPLACE
--------

/replace=DomainName\OldAccount=DomainName\New_Account ……使用方法

    replace all ACEs (Audit and Permissions) in the object
    Ex: /replace=DOM_MARKETING\ChairMan=NEWDOM\NewChairMan will replace
        all ACEs containing DOM_MARKETING\ChairMan with NewChairMan SID
        retrieves from NEWDOM domain
    Warning: if DomainName\New_Account has already an ACE, ACE replacement is
    skipped

 対象となるファイルやフォルダ、レジストリ・エントリなどの指定方法については、TIPS「subinaclコマンドでオブジェクトのセキュリティ情報を表示させる(subinaclの基本)」を参照していただきたい。例えばファイルなら「/file testfile.dat」のように指定する。

 例として、次のようなACLを持つファイルがあるとする(caclsコマンドの出力がいちばんシンプルなので、これでACLを確認する)。

C:\>cacls testfile.dat ……caclsコマンドによる確認
C:\testfile.dat BUILTIN\Administrators:F
                NT AUTHORITY\SYSTEM:F
                MYPC12\user01:F ……このアカウントを変更してみる
                MYPC12\user02:F
                BUILTIN\Users:R

 この中にある「MYPC12\user01」というローカル・ユーザー・アカウントを、「EXAMPLEDOM\uchikoshi」というドメイン・ユーザー・アカウントに変更するには(ユーザーでなく、グループに変更することも可能)、次のよう/replaceに続けて、旧アカウントと新アカウントを指定する(ローカル・アカウントの場合、コンピュータ名の指定は省略可能)。

C:\>subinacl /file testfile.dat /replace=user01=EXAMPLEDOM\uchikoshi ……置換
C:\testfile.dat : replace Perm. ACE 2 MYPC12\user01 with EXAMPLEDOM\uchikoshi
C:\testfile.dat : 1 change(s)


Elapsed Time: 00 00:00:00
Done:        1, Modified        1, Failed        0, Syntax errors        0
Last Done  : C:\testfile.dat ……処理されたファイル

C:\>cacls testfile.dat ……caclsコマンドによる結果の確認
C:\testfile.dat BUILTIN\Administrators:F
                NT AUTHORITY\SYSTEM:F
                EXAMPLEDOM\uchikoshi:F ……変更されている
                MYPC12\user02:F
                BUILTIN\Users:R

 すでに削除されたアカウントを置換したい場合は、アカウントをSID文字列形式で指定すればよい。subinaclコマンドを使うと削除済みアカウントのSID形式表現を取得できるので(TIPS「icacls/subinaclでアクセス制御リストからメンバーを削除する」参照)、これを/replaceオプションに指定する。

※先ほどの例で、user02というローカル・ユーザー・アカウントを削除してみる
C:\>net user user02 /delete ……アカウントの削除
コマンドは正常に終了しました。

C:\>cacls testfile.dat ……caclsによる確認
C:\testfile.dat BUILTIN\Administrators:F
                NT AUTHORITY\SYSTEM:F
                MYPC12\user01:F
                <アカウント ドメインが見つかりません>F ……削除されている
                BUILTIN\Users:R

C:\>subinacl /file testfile.dat ……subinaclによる確認

======================
+File C:\testfile.dat
======================
……(中略)……。次のS-1-5-…がSID形式での表現
/pace =S-1-5-21-515967899-1637723012-1926980848-1033    ACCESS_ALLOWED_ACE_TYPE-0x0
……(以下省略)……


※subinaclでDomain Usersに置換する
C:\>subinacl /file testfile.dat /replace=S-1-5-21-515967899-1637723012-1926980848-1033="Domain Users"
C:\testfile.dat : replace Perm. ACE 3 S-1-5-21-515967899-1637723012-1926980848-1033 with exampledom\domain users
C:\testfile.dat : 1 change(s)


Elapsed Time: 00 00:00:00
Done:        1, Modified        1, Failed        0, Syntax errors        0
Last Done  : C:\testfile.dat

※caclsで確認してみる
C:\>cacls testfile.dat
C:\testfile.dat BUILTIN\Administrators:F
                NT AUTHORITY\SYSTEM:F
                MYPC12\user01:F
                EXAMPLEDOM\Domain Users:F ……置換されたエントリ
                BUILTIN\Users:R

 以上では、単独のファイルを対象に操作しているが、サブフォルダ全体を対象にしたければ、「/file 〜」の代わりに「/subdirectories 〜」を利用すればよい。End of Article

「Windows TIPS」


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

注目のテーマ

Windows Server Insider 記事ランキング

本日 月間