문제

질문으로 제목에서 알 수 있듯이,저는 아주 많이 알고 있는 방법을 확인하 ntfs 의 권한이 주어진 파일 또는 폴더(힌트:그들은 그들이 당신이 볼에서"보안"탭에서).기본적으로,내가 무엇을 필요로하는 경로로 파일 또는 디렉토리에(로컬 머신,또는 가급적이면,공유에서 원격 컴퓨터에서)고 목록의 사용자/그룹과는 해당 권한이 파일/폴더에 있습니다.궁극적으로,응용 프로그램을 통과하는 디렉토리 트리,독해에 대한 권한 각 개체 및 그들을 처리합니다.

지금,나는 생각할 수 있는 방법의 수를 그렇게 하도록 요청합니다.

  • 구문 분석 cacls.exe 출력--쉽게 하지만,특별 목표를 설정했습니다.cacls.exe 제공하는 권한 형태의 R|W|C|F(읽기/쓰기/변경/전체)는 불충분한(I 필요한 권한이 다음과 같"폴더 내용",확장 권한도)
  • xcacls.exe 또 xcacls.vbs 출력--그렇다,그들은 나에게 모든 권한이 필요하지만,그들은 작업을 무섭게 느리게,그것은 xcacls.vbs 에 대해 하나를 얻기 위해 두 번째 사용 권한 로컬 시스템에서 파일입니다.같은 속도가 없
  • win32security(그 주위를 감싸는 winapi,right?) --나는 확실히 처리될 수 있는 다음과 같이지만,오히려 바퀴를 재발견하지

다른 것은 다 여기 있는가?

도움이 되었습니까?

해결책

지 않으면 당신은 멋진 롤링,자신 win32security 는 방법입니다.가의 시작은 예로 여기:

http://timgolden.me.uk/python/win32_how_do_i/get-the-owner-of-a-file.html

를 원하는 경우 약간 위험에(!) 내에서 진행 winsys 패키지 할 수 있도록 설계되어 정확히 무엇입니다.을 얻을 수 있습니다 MSI 의 개발자 버전이 여기:

http://timgolden.me.uk/python/downloads/WinSys-0.4.win32-py2.6.msi

당신이 체크아웃 svn 트렁크:

svn co http://winsys.googlecode.com/svn/trunk winsys

를 할 당신은 무엇을 설명하(추측이에서 약간의 정확한 요구 사항에)당신이 이렇게 할 수 있다:

import codecs
from winsys import fs

base = "c:/temp"
with codecs.open ("permissions.log", "wb", encoding="utf8") as log:
  for f in fs.flat (base):
  log.write ("\n" + f.filepath.relative_to (base) + "\n")
  for ace in f.security ().dacl:
    access_flags = fs.FILE_ACCESS.names_from_value (ace.access)
    log.write (u"  %s => %s\n" % (ace.trustee, ", ".join (access_flags)))

TJG

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top