ユーザ用ツール

サイト用ツール


acl

文書の過去の版を表示しています。


アクセス制御リスト (ACL: Access Control List) の技術概要 †

http://msdn.microsoft.com/ja-jp/library/ms229936(VS.80).aspx

NTFS のセキュリティ機能と落とし穴 http://www.ipa.go.jp/security/awareness/vendor/programming/b08_03_main.html

WSH ウォークスルー (DACLを操作する) http://msdn.microsoft.com/ja-jp/library/cc364508.aspx

ユーザーをASPで作成

http://winofsql.jp/VA003334/smalltech040218163326.htm ↑ ファイルのアクセス許可設定のサンプル

c:\scripts\test.txt のアクセス許可を変更します

Option Explicit Dim instance Dim strMoniker Dim objDescriptor Dim retval Dim DACL Dim controlFlags Dim accessmask Dim Group Dim Owner Dim SACL Dim number_of_trustees Dim trustee_Domain Dim trustee_Name Dim trustee_Sidstring Dim i Dim strACL

アクセス権のマスク Const FULLACCESS = 2032127 フルアクセス(All) Const READ = 1179817 読み取り(RX) Const UPDATE = 1245631 変更(RWXD) Const R = 1179785 特殊なアクセス権(R) Const W = 1179926 特殊なアクセス権(W) Const X = 1179808 特殊なアクセス権(X) Const D = 65536 特殊なアクセス権(D) Const P = 262144 特殊なアクセス権(P) Const O = 524288 特殊なアクセス権(O)

Const ImpLevel = “{impersonationLevel=impersonate}” Const namespace = “!root\cimv2:” Const objectpath = _

     "Win32_LogicalFileSecuritySetting=""c:\\scripts\\test.txt"""
     strMoniker = "winmgmts:" & ImpLevel & namespace & objectpath

Set instance = GetObject(strMoniker) If instance Is Nothing Then

 MsgBox ("インスタンスを取得出来ません。")
 WSCript.Quit

End If

retval = instance.getsecuritydescriptor(objDescriptor)

Set DACL = objDescriptor.Properties_.Item(“dacl”) ' get dacl controlFlags = objDescriptor.Properties_.Item(“controlflags”) Set Group = objDescriptor.Properties_.Item(“Group”) Set Owner = objDescriptor.Properties_.Item(“Owner”) Set SACL = objDescriptor.Properties_.Item(“Sacl”)

number_of_trustees = UBound(DACL.Value) WScript.Echo “ドメイン名\ユーザ名:SID\アクセス権\アクセスマスク” For i = 0 To number_of_trustees

 Set trustee_Domain = DACL.Value(i).Properties_.Item _
     ("trustee").Value.Properties_.Item("Domain")
 Set trustee_Name = DACL.Value(i).Properties_.Item _
     ("trustee").Value.Properties_.Item("Name")
 Set trustee_Sidstring = DACL.Value(i).Properties_.Item _
     ("trustee").Value.Properties_.Item("Sidstring")

accessmask = DACL.Value(i).Properties_.Item _

     ("AccessMask").Value ' Save the accessmask

Select Case accessmask

     Case FULLACCESS
         strACL = "フルコントロール(All)"
     Case READ
         strACL = "読み取り(RX)"
     Case UPDATE
         strACL = "変更(RWXD)"
     Case Else
         strACL = accessmask
 End Select

WScript.Echo trustee_domain & “\” & trustee_name & “:” & trustee_Sidstring & “:” & strACL & “:” & accessmask

If trustee_name = “Administrators” Then

     'アクセス許可の設定
     'Administratorsを「読み取り」にする
     objDescriptor.Properties_.Item("dacl").Value(i).Properties_.Item _
         ("AccessMask").Value = R
 End If

Next

retval = instance.setsecuritydescriptor(objDescriptor) If retval = 0 Then

 MsgBox "成功しました。"

Else

 MsgBox "セキュリティ設定を変更できませんでした。"

End If Set instance = Nothing WSCript.Quit

acl.1392906793.txt.gz · 最終更新: 2019/06/30 12:22 (外部編集)