2014-02-27 4 views
0

내 python 스크립트는 각 사용자마다 하나씩 폴더를 만듭니다. 특정 사용자 만이 특정 폴더에만 액세스 할 수 있고 다른 폴더에는 액세스 할 수없는 권한을 부여하고자합니다. 예를 들어, python 스크립트는 folder1, folder 2를 만듭니다. ... folder1은 user1 만 읽을 수 있고 folder2는 user2 만 읽을 수 있습니다. Windows Server 2008에서 작업. 감사합니다.특정 사용자의 디렉토리에 대한 r/w 권한을 얻는 방법은 무엇입니까?

+0

os.chown 다음에 os.chmod를 사용하십시오. –

답변

0

os.chown(path, uid, gid) 경로 소유자를 변경하려면 os.chmod(path, mode) 모드 700 (사용자 만 경로를 읽거나 쓰거나 실행할 수 있음). 나는 창문

--- 편집 ---

이 Apparantly 히 chown dosent 작업 ... 그 일을한다고 생각합니다. pywin32의 일부인 win32security 모듈이 필요합니다. here은 권한을 변경하는 방법을 보여주는 답변입니다.

+1

이들은 UNIX에서만 작동하며 Windows에서는 사용할 수 없습니다. –

+0

@BurhanKhalid - docs는 chomd에 대해 다음과 같이 설명합니다. "Availability : Unix, Windows." - http://docs.python.org/2/library/os.html#os.chmod를 참조하십시오. – WeaselFox

+0

@BurhanKhalid - 잠깐, chown은 유닉스에만 apparantly .. 감사합니다 – WeaselFox

0

Win32 보안 API는별로 도움이되지 않습니다. 가장 간단한 해결책은 subprocess 또는 system을 사용하여 파이썬에서 호출 된 cacls 또는 icacls과 같은 외부 Microsoft 프로그램을 사용하는 것입니다. cacls 오히려 지저분 :

cmd = r"echo y|cacls gash.txt /E /G BUILTIN\\Users:R" 

cacls 온라인 도움말 (윈도우 XP)와 here에 설명되어 있습니다. "당신은 확실합니까 (Y/N)?"라는 프롬프트에 따라 조치를 취할 수 있습니다. 따라서 echo y|이 표시됩니다 (here 참조). 또는 Windows Resource Kit에서 xcacls.exe을 사용하십시오.이 버전에서는 메시지가 표시되지 않습니다.

Windows Vista 및 Windows 7에서 cacls 프로그램은 여전히 ​​작동하지만 더 강력한 icacls 프로그램을 사용하기 때문에 더 이상 권장되지 않습니다. 죄송합니다. Windows 8이 없습니다.

+1

질문은 windows 태그가 있습니다. – WeaselFox

+0

죄송합니다. – cdarke

관련 문제