@サーバーフォルダーを操作する際は、ネットワークドライブをマッピングすることをお勧めします
import win32security
import ntsecuritycon as con
FILENAME = r'D:tmpacc_test' #フォルダーパス
sd = win32security.GetFileSecurity(FILENAME, win32security.DACL_SECURITY_INFORMATION )
dacl = sd.GetSecurityDescriptorDacl()
ace_count = dacl.GetAceCount() #フォルダー権限を持つユーザー(グループ)の数を表示
print('Ace count:', ace_count)
for i in range(0, ace_count ):
rev、access、usersid = dacl.GetAce(i)
user、group、type = win32security.LookupAccountSid('', usersid)
print('User: {}/{}'.format(group, user )、rev、アクセス)
ユーザー: user (0, 0) 1179817 #このフォルダーのみ、権限を表示
ユーザー: admin (0, 0) 1245631 #このフォルダーのみ、権限を変更
ユーザー: 管理者 (0, 3) 2032127 #このフォルダー、サブフォルダー すべての権限
#フォルダーの削除権限
これで古い ACE を読み取ることができるようになり、古い ACE の削除は非常に簡単です:
for i in range(0, ace_count):
dacl.DeleteAce (0)
# add を使用して権限を追加します
その後は、AddAccessAllowedAceEx() [MSDN]:
userx, domain, type = win32security.LookupAccountName ("", "your.user")
usery, domain, type を呼び出して権限を追加するだけです。 = win32security.LookupAccountName ("", "other.user")
dacl.AddAccessAllowedAceEx(win32security.ACL_REVISION, 3, 2032127, userx) # フルコントロール@ミドル 3 は、後続のフォルダーによって制限されるアクセス許可を表します。 Inherited 0:いいえ
dacl.AddAccessAllowedAceEx(win32security.ACL_REVISION, 3, 1179785, usery) # 読み取り専用権限
sd.SetSecurityDescriptorDacl(1, dacl, 0) # 必要ない場合があります
win32security.SetFileSecurity(FILENAME, win32security.DACL_SECURITY _情報、 sd)
スクリプトの前半のリストから番号 3、2032127、および 1179785 を取得しました (スクリプトを実行する前に、エクスプローラー -> 右クリック -> プロパティ -> セキュリティ -> で権限を設定しました) ;上級):
#
#
#Example
# try:
#許可 = '1179817'
# acegroup = 'ユーザー'
# フォルダー = 'Z:\50.Test Folder\01.2'
# sd = win32security .GetFileSecurity(folder, win32security.DACL_SECURITY_INFORMATION)
# dacl = sd.GetSecurityDescriptorDacl()
# user1、domain、type = win32security.LookupAccountName('', acegroup)
#
# permission = int(permit)
# dacl .AddAccessAllowedAceEx (win32security.ACL_REVISION, 0, permisson, user1) #中央の 0 は、フォルダー 3 のみがこのフォルダーのサブファイルを表すことを意味します
# sd.SetSecurityDescriptorDacl(1, dacl, 0) # 必要ない場合があります
# win32security .SetFileSecurity(folder, win32security.DACL_SECURITY_INFORMATION, sd)
# e:
# print(e) としての例外は除きます
#Python の os モジュールはフォルダーを制御します
#import os
#import shutil
# try:
# os 。 mkdir(r'Z:50.test フォルダー
以上がPython はフォルダー権限グループを表示し、OS モジュールを使用してフォルダーを操作しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。