Windowsでフォルダの権限を設定するにはどうすればいいですか? 質問する

Windowsでフォルダの権限を設定するにはどうすればいいですか? 質問する

ユーザーの AD アカウントが作成されたときに、Python を使用して新しい個人用フォルダーを作成しています。フォルダーは作成されていますが、アクセス許可が正しくありません。Python は、新しく作成されたフォルダーにユーザーを追加し、アクセス許可を変更することができますか? これをコーディングする場所がわかりません。

ベストアンサー1

モジュールが必要win32securityなのは、pywin32. ここは自分がやりたいことをやることです。

この例では、ファイルの新しい DACL を作成し、古い DACL を置き換えますが、既存の DACL を変更するのは簡単です。必要なのは、次のように、空の DACL を作成するのではなく、セキュリティ記述子から既存の DACL を取得することだけです。

import win32security
import ntsecuritycon as con

FILENAME = "whatever"

userx, domain, type = win32security.LookupAccountName ("", "User X")
usery, domain, type = win32security.LookupAccountName ("", "User Y")

sd = win32security.GetFileSecurity(FILENAME, win32security.DACL_SECURITY_INFORMATION)
dacl = sd.GetSecurityDescriptorDacl()   # instead of dacl = win32security.ACL()

dacl.AddAccessAllowedAce(win32security.ACL_REVISION, con.FILE_GENERIC_READ | con.FILE_GENERIC_WRITE, userx)
dacl.AddAccessAllowedAce(win32security.ACL_REVISION, con.FILE_ALL_ACCESS, usery)

sd.SetSecurityDescriptorDacl(1, dacl, 0)   # may not be necessary
win32security.SetFileSecurity(FILENAME, win32security.DACL_SECURITY_INFORMATION, sd)

おすすめ記事