Windows 7 "서버"에서 CIFS를 통해 공유된 디렉토리가 있습니다. 도메인 없음: 단순한 작업 그룹입니다.
내 클라이언트는 서버의 "표준 사용자"("관리자" 아님) 계정을 통해 LAN을 통해 이 디렉터리에 액세스합니다. 그들은 이 공유를 "개인 저장소"로 사용하므로 그 안에 있는 모든 것에 대한 완전한 생성/편집/삭제가 필요합니다.
문제는 서버 측에서 거기에 디렉토리를 생성한다는 것입니다.이 단일 항목은 어떤 식으로든 편집할 수 없어야 하며 읽기/탐색/목록만 가능해야 합니다.(내부 파일이 아닌 디렉터리 자체에 초점을 맞추자(때로는 파일이 없음).
저는 NTFS 권한으로 작업하고 있습니다. 삭제 금지 디렉터리에서 상속을 제거하여 해당 권한에 대한 작업을 수행할 수 있습니다.
고객 계정을 제거했는데 이 단계에서는 SYSTEM, 관리자 및 본인만 권한을 갖고 있습니다. 이 단계에서 클라이언트는 폴더를 삭제하거나 열 수 없습니다.
거부 "모든 권한" 규칙을 추가하면 예상대로 아무 것도 변경되지 않습니다.
하지만해당 규칙을 수정하고 "폴더 나열/데이터 읽기"만 허용하고 다른 모든 항목은 거부로 유지하면... 사용자가 폴더를 삭제할 수 있습니다.!?!?!?
그게 어떻게 가능해요? 내가 뭘 잘못 이해하고 있는 거지?
참고: 디렉터리가 아닌 단일 파일로 다시 확인했습니다. 동일한 문제입니다!
이것은 Icacls 출력입니다.
NT AUTHORITY\SYSTEM:(OI)(CI)(F) muletto\Zane:(OI)(CI)(F) BUILTIN\Administrators:(OI)(CI)(F) muletto\myNetworkUser:(OI)를 삭제하면 안 됩니다. (CI)(수신)
1개의 파일을 성공적으로 처리했습니다. 0개 파일 처리 실패
답변1
좋아요. 사용자가 상위 디렉터리에 대한 하위 삭제 액세스 권한이 있는 경우 해당 파일/디렉터리에 대한 쓰기 액세스 권한 없이 파일을 삭제(또는 빈 디렉터리 제거)할 수 있음을 확인할 수 있습니다. 이전에 이 사실을 알고 있었다면 잊어버린 것입니다. 그러나 이는 문서화된 동작입니다. 예를 들어 다음을 참조하세요.KB101651.
문제를 해결하는 방법에는 (적어도) 세 가지가 있습니다.
사용자에게 상위 디렉터리에 대한 모든 권한 대신 수정 액세스 권한을 부여합니다. 모든 권한과 수정 간의 유일한 차이점은 하위 삭제 권한(사용자가 하위 개체를 삭제할 수 있음)과 DAC 쓰기 권한(사용자가 소유자가 아니더라도 개체에 대한 사용 권한을 변경할 수 있음)입니다.
공유에 대한 권한을 전체 대신 수정으로 설정합니다. 이는 동일한 효과를 가지지만 대화형 사용자가 아닌 네트워크 사용자에게만 영향을 미칩니다. 한 가지 부작용은 사용자가 자신의 파일에 대해서도 권한을 변경할 수 없다는 것입니다.
하위 파일/디렉토리에 읽기 전용 플래그를 설정합니다. 이 점에 대한 문서는 명확하지 않지만 내 테스트(Windows 7)에 따르면 하위 삭제를 사용하면 읽기 전용 플래그가 설정된 파일을 삭제하거나 디렉터리를 제거할 수 없는 것으로 나타났습니다. 또한 읽기 전용 플래그를 재설정하는 것도 허용하지 않습니다. Explorer GUI는 읽기 전용 플래그가 디렉터리에 영향을 미치지 않음을 의미합니다. 실제로 이는 디렉토리가 제거되는 것을 방지합니다. (새 파일이 디렉토리에 기록되는 것을 막지는 않습니다.) 부록:읽기 전용 플래그는 디렉토리 이동을 방해하지 않습니다.
기타 참고 사항:
상위 디렉터리에 대한 하위 삭제 권한을 명시적으로 거부할 수 있지만 사용자가 상위 디렉터리에 대한 모든 권한을 갖고 있는 경우 거부 항목을 제거할 수 있습니다.
상위 디렉터리에 대한 하위 삭제 권한이 있어도 사용자는 하위 디렉터리에서 파일을 삭제하거나 비어 있지 않은 경우 하위 디렉터리를 제거할 수 없습니다. 부록:사용자는 하위 디렉터리를 이동할 수 있습니다.