2006.11.22 Wednesday | 11:53

  ディレクトリのセキュリティ ふるいむかし

(Microsoft ダウンロードページ)

要するにファイルシステムに対するセキュリティ設定ですが、
Microsoft 的に言うと 「NTFS アクセス許可を変更する方法」 になります

dirsec_01.png

上記タブは Windows2000 では普通に表示可能なのですが、
Windows XP PRO では、以下の設定を行わないとセキュリティタブが表示されません



さらに、Windows XP HOME では、この GUI そのものが仕様として存在しないので
コマンドラインから実行する cacls.exe を使用する事になります

ファイルのアクセス制御リスト(ACL) を表示または変更します。

CACLS ファイル名 [/T] [/E] [/C] [/G ユーザー名:アクセス権] [/R ユーザー名 [...
                 [/P ユーザー名:アクセス権 [... [/D ユーザー名 [...
  ファイル名        ACL を表示します。
  /T                現在のディレクトリとすべてのサブディレクトリにある
                    指定されたファイルの ACL を変更します。
  /E                ACL を置き換えずに、ACL を編集します。
  /C                アクセス拒否エラーを無視して、ACL の変更を続行します。
  /G ユーザー:アクセス権
                    指定されたユーザーにアクセス権を与えます。
                    アクセス権: R  読み取り
                                W  書き込み
                                C  変更 (書き込み)
                                F  フル コントロール
  /R ユーザー名     指定されたユーザーのアクセス権を失効させます。
                    (/E オプションと共に使用)。
  /P ユーザー名:アクセス権
                    指定されたユーザーのアクセス権を置き換えます。
                    アクセス権: N  なし
                                W  書き込み
                                R  読み取り
                                C  変更 (書き込み)
                                F  フル コントロール
  /D ユーザー名     指定されたユーザーのアクセスを拒否します。
複数のファイルを指定するには、ワイルドカードを使用できます。
複数のユーザーを指定できます。


ただ、この cacls.exe は、ヘタに使用すると自分自身がアクセス
できないディレクトリできてしまうので注意して下さい
Windows XP HOME ですと、GUI が無いので元に戻すには cacls.exe を
使用する必要があります

以下、指定ユーザの権限削除
cacls 対象ディレクトリ /E /R ユーザ名


しかし、少なくとも Windows2000 でこのコマンドは追加等がうまく動かないので、
xcacls を使用したほうがいいのですが、これは cacls より危険なので注意して使用する必要があります。
( 以前の権限を簡単に書き換えてしまう )

コマンドラインとしては、常に /E を入れるようにして下さい。


以下一覧の表示
C:\TEMP>cscript XCACLS.vbs ntfs_test
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.

Starting XCACLS.VBS (Version: 5.2) Script at 2006/11/22 14:53:47

Startup directory:
"C:\TEMP"

Arguments Used:
        Filename = "ntfs_test"



**************************************************************************
Directory: C:\TEMP\ntfs_test

Permissions:
Type     Username                Permissions           Inheritance

Allowed  STD0-024\Administrator  Read and Execute      This Folder, Subfolde
Allowed  \Everyone               Read and Execute      This Folder, Subfolde
Allowed  STD0-024\lightbox       Read and Execute      This Folder, Subfolde

No Auditing set

Owner: BUILTIN\Administrators
**************************************************************************


Operation Complete
Elapsed Time: 4.417969 seconds.

Ending Script at 2006/11/22 14:53:52


以下は、権限リストから指定ユーザの削除です
cscript XCACLS.vbs ディレクトリ /E /R ユーザ名


以下のようにすると全て削除されてしまいます
( everyone が存在しなくても )
cscript XCACLS.vbs ntfs_test /R everyone


追加は以下のようにします
cscript XCACLS.vbs ntfs_test /E /P everyone:F

F フル コントロール
M 変更
X 読み取りと実行
R 読み取り
W 書き込み

結論として、Windows XP HOME では、XCACLS.vbs を使用するしかありません。