Windows TIPS
[System Environment]
subinaclコマンドでオブジェクトの所有者やプライマリ・グループを変更する
→ 解説をスキップして操作方法を読む
デジタルアドバンテージ 打越 浩幸
2010/07/23
対象OS
Windows 2000
Windows XP
Windows Server 2003
Windows Vista
Windows Server 2008
Windows 7
Windows Server 2008 R2
■
Windows OSには、ファイルやレジストリ、プロセス、共有、ユーザー/グループ名など、さまざまなオブジェクトが含まれる。これらにはすべてアクセス権などが設定されている。
■
subinaclを使うと、オブジェクトの所有者やプライマリ・グループ情報を表示したり、変更したりできる。
TIPS「subinaclコマンドでオブジェクトのセキュリティ情報を表示させる(subinaclの基本) 」では、subinacl.exeというコマンドを使って、オブジェクト(ファイルだけでなく、レジストリや共有、サービスなど、さまざまなものがある)のセキュリティ情報を表示させる方法を紹介した。このコマンドはさまざまなサブコマンドを持っているが、本TIPSではそのうち、オブジェクトの所有者やプライマリ・グループを変更する方法を紹介する。subinacl.exeの入手方法は、先のTIPSを参照するか、次の場所からダウンロードしていただきたい。
subinaclでオブジェクトの所有者を変更する
TIPS「icaclsコマンドでファイルの所有者を変更する 」では、icacls.exeコマンドでファイルやフォルダの所有者情報を変更する方法を紹介したが、subinaclコマンドでも、「/setowner=<所有者> 」もしくは「/owner=<所有者> 」というオプションを付けると同様のことができる。ただし、subinaclはファイルやフォルダだけを扱うコマンドではないので、「/file <パス名> 」や「/subdirectories <パス名> 」(指定したパス以下すべて)といった指定が必要になる(オブジェクトの指定方法についてはTIPS「subinaclコマンドでオブジェクトのセキュリティ情報を表示させる(subinaclの基本) 」も参照)。
■現在の所有者の確認
C:\MyDocument>subinacl /file testfile1.txt
==================================
+File C:\MyDocument\testfile1.txt
==================================
/control=0x1000 SE_DACL_PROTECTED-0x1000
/owner =example\user01 …所有者情報
/primary group =example\domain users
…(以下省略)…
■所有者情報の変更(Administratorに変更する)
C:\MyDocument>subinacl /file testfile1.txt /setowner=Administrator
C:\MyDocument\testfile1.txt : pc2\administrator is the new owner …新所有者
C:\MyDocument\testfile1.txt : 1 change(s)
Elapsed Time: 00 00:00:00
Done: 1, Modified 1, Failed 0, Syntax errors 0
Last Done : C:\MyDocument\testfile1.txt
■変更後の所有者の確認
C:\MyDocument>subinacl /file testfile1.txt
==================================
+File C:\MyDocument\testfile1.txt
==================================
/control=0x1000 SE_DACL_PROTECTED-0x1000
/owner =pc2\administrator …新しい所有者
/primary group =example\domain users
…(以下省略)…
サブフォルダ以下のオブジェクトも対象とする場合は、「/subdirectories data\*.*」のように指定する。このコマンドでは、ファイル以外のオブジェクトに対しても、同様にその所有者情報を変更できる。
subinaclでオブジェクトのプライマリ・グループ情報を変更する
「プライマリ・グループ」とは、オブジェクト(ファイルやフォルダなど)を所有している、メインとなるグループのことである。例えばドメインに所属しているユーザーのプライマリ・グループは、通常Domain Usersグループである。1人のユーザーは複数のグループに属することができるが、それらのグループのうち、最も代表的なグループがプライマリ・グループである。ファイルなどのオブジェクトを作成すると、その所有者(通常は作成者)を表す情報と共に、そのファイルのプライマリ・グループの情報も書き込まれる。ただしNTFSでは所有者もプライマリ・グループも保持されるが、FATファイル・システムでは所有者やプライマリ・グループ情報は保存されない。
ただしプライマリ・グループ情報は通常のWindowsアプリケーションではほとんど使われていない。現状ではこの情報は、POSIXシステムやSFU(Services For UNIX)などでのみ使われている。
プライマリ・グループの情報はsubinaclsで確認できるし、「/setprimarygroup=<グループ名> 」や「/primarygroup=<グループ名> 」オプションで変更できる。
■現在のプライマリ・グループの確認
C:\MyDocument>subinacl /file test1.txt
==============================
+File C:\MyDocument\test1.txt
==============================
/control=0x0
/owner =example\user01
/primary group =example\domain users …プライマリ・グループ
…(以下省略)…
■プライマリ・グループの変更(Administratorに変更する)
C:\MyDocument>subinacl /file test1.txt /setprimarygroup=administrator
C:\MyDocument\test1.txt : pc2\administrator is the new Primary Group
C:\MyDocument\test1.txt : 1 change(s)
Elapsed Time: 00 00:00:00
Done: 1, Modified 1, Failed 0, Syntax errors 0
Last Done : C:\MyDocument\test1.txt
■変更後のプライマリ・グループの確認
C:\MyDocument>subinacl /file test1.txt
==============================
+File C:\MyDocument\test1.txt
==============================
/control=0x0
/owner =example\user01
/primary group =pc2\administra tor …新しいプライマリ・グループ
…(以下省略)…
Windows OS上ではあまり使われない機能なので分かりづらいかもしれないが、以上の操作は、UNIXやLinux上でchgrp(change group)というコマンドを使うことに相当する。現在の所有者とプライマリ・グループ情報はUNIXのlsコマンドで確認できる。以下はSFU上で操作した場合の例である(SFUについてはTIPS「UNIX互換環境を実現するSFUを利用する 」参照)。
■SFU上でファイルを確認する
% ls -lsa
total 1
0 drwxrwxrwx 1 user01 Domain Users 0 7月 21 16:32 .
0 drwxrwxr-x+ 1 +Administrators +SYSTEM 0 7月 21 16:29 ..
1 -rwxrwxrwx 1 user01 Domain Users 427 7月 21 16:32 test1.txt
↑所有者 ↑これがプライマリ・グループ情報
■SFU上でプライマリ・グループを変更する
% chgrp +Administrators test1.txt
■SFU上で再確認する
% ls -lsa
total 1
0 drwxrwxrwx 1 user01 Domain Users 0 7月 21 16:32 .
0 drwxrwxr-x+ 1 +Administrators +SYSTEM 0 7月 21 16:29 ..
1 -rwxrwxrwx 1 user01 +Administrators 427 7月 21 16:32 test1.txt
↑変更された
■同じファイルをWindows上から確認する
C:\MyDocument>subinacl /file test1.txt
==============================
+File C:\MyDocument\test1.txt
==============================
/control=0x0
/owner =example\user01
/primary group =builtin\administrators …変更されたプライマリ・グループ
…(以下省略)…
なお、UNIX/Linux上で所有者を変更するには、chown(change owner)コマンドを使えばよい。
この記事と関連性の高い別のWindows TIPS
generated by
TechTargetジャパン
Windows Server Insider フォーラム 新着記事
キャリアアップ
**先週の人気講座ランキング**
〜 Android編 〜