>  기사  >  백엔드 개발  >  Python은 폴더 권한 그룹을 보고 OS 모듈을 사용하여 폴더를 작동합니다.

Python은 폴더 권한 그룹을 보고 OS 모듈을 사용하여 폴더를 작동합니다.

高洛峰
高洛峰원래의
2017-03-27 16:26:312389검색

@서버 폴더 운영 시 네트워크 드라이브 매핑을 권장합니다

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 , 유형 = win32security.LookupAccountSid('', usersid)
print('사용자: {}/{}'.format(group, user), rev, access)
사용자: 사용자 (0, 0) 1179817 #이 폴더만, 권한 보기
사용자: admin(0, 0) 1245631 #이 폴더만, 권한 수정
사용자: 관리자(0, 3) 2032127 #이 폴더, 하위 폴더 모든 권한

#폴더 권한 삭제
이제 오래된 ACE를 읽을 수 있고 오래된 ACE를 삭제하는 것은 매우 간단합니다.
for i in range(0, ace_count):
dacl.DeleteAce (0)

#사용 권한을 추가하려면
그런 다음 AddAccessAllowedAceEx()를 호출하여 권한을 추가할 수 있습니다. [MSDN]:
userx, domain, type = win32security.LookupAccountName ("" , "your.user")
usery, domain, type = win32security.LookupAccountName ("", "other.user")

dacl.AddAccessAllowedAceEx(win32security.ACL_REVISION, 3 , 2032127, userx) # 전체 control @middle 3은 권한이 후속 폴더에 상속됨을 의미합니다. 0: 아니요
dacl.AddAccessAllowedAceEx(win32security.ACL_REVISION, 3, 1179785, usery) # 읽기 전용 권한

sd.SetSecurityDescriptorDacl(1, dacl, 0) #필요하지 않을 수 있음
win32security.SetFileSecurity(FILENAME, win32security.DACL_SECURITY_INFORMATION, sd)
스크립트 전반부에 있는 목록에서 숫자 3, 2032127 및 1179785를 가져왔습니다(실행하기 전). 스크립트 탐색기->오른쪽 클릭->속성->보안->고급에서 권한을 설정했습니다.
#

#
#예
# 시도해 보세요:
# 허가 = '1179817'
# acegroup = '사용자'
# 폴더 = 'Z:\50.Test Folder\01.2'
# sd = win32security.GetFileSecurity(폴더, win32security.DACL_SECURITY_INFORMATION )
# dacl = sd.GetSecurityDescriptorDacl()
# user1, domain, type = win32security.LookupAccountName('', acegroup)
#
# permisson = 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 shutdown

# try:
# os.mkdir(r'Z:50. 테스트 폴더

 

위 내용은 Python은 폴더 권한 그룹을 보고 OS 모듈을 사용하여 폴더를 작동합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.