ホームページ >バックエンド開発 >Python チュートリアル >Python はフォルダー権限グループを表示し、OS モジュールを使用してフォルダーを操作します

Python はフォルダー権限グループを表示し、OS モジュールを使用してフォルダーを操作します

高洛峰
高洛峰オリジナル
2017-03-27 16:26:312414ブラウズ

@サーバーフォルダーを操作する際は、ネットワークドライブをマッピングすることをお勧めします

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。