목표 : 사용자가 파일을 만들 수 있지만 파일을 수정하거나 삭제할 수없는 공유 폴더입니다. 사용자는 하위 폴더도 만들 수 있어야합니다.
보안 그룹에 다음과 같은 고급 NTFS 권한을 부여했습니다.
- 폴더 탐색 / 파일 실행
- 폴더 목록 / 데이터 읽기
- 속성 읽기
- 확장 된 속성 읽기
- 파일 작성 / 데이터 쓰기
- 읽기 권한
시행 착오 과정을 통해 ‘쓰기 속성’을 부여 하지 않으면 사용자가 기존 파일을 수정 / 삭제하지 못하게하는 효과가 있음을 알았습니다. 그러나 왜 이것이 작동하는지 정확하게 설명하고 싶습니다. 내가 가진 유일한 이론은 파일의 삭제 / 수정이 파일의 속성을 변경한다는 것입니다. 여기 같은 줄에 대한 토론이 있습니다 .
편집-내 질문의 두 번째 부분은 관련이 없습니다. ‘파일 만들기 / 데이터 쓰기’만 선택했다고 생각했지만 ‘폴더 만들기 / 데이터 추가’도 선택했습니다.
또한 사용자가 루트 내에서 하위 폴더를 만들 수 있기를 원하며 ‘Create Files / Write Data’를 부여하면 이것이 가능합니다. 그러나 다시 말하지만,이 권한은이 권한이 폴더가 아닌 파일의 생성 만 허용해야한다고 제안합니다. 왜 작동하는지 이해할 수 없습니까? ‘파일 만들기 / 데이터 쓰기’특성 에 대한 Microsoft의 설명 은 “폴더의 경우 사용자가 폴더 내에서 파일을 만들 수 있는지 여부를 지정합니다. 파일의 경우 파일을 변경하거나 데이터를 덮어 쓸 수 있는지 여부를 지정합니다.” 폴더 내에 하위 폴더를 만드는 기능에 대한 언급이 없습니까?
그래서 기본적으로, 나는 내가 뭘했는지 알고 있었지만 왜 작동하는지 이해하지 못했습니까?
답변
시행 착오 과정을 통해 ‘쓰기 속성’을 부여하지 않으면 사용자가 기존 파일을 수정 / 삭제하지 못하게하는 효과가 있음을 알았습니다. 그러나 왜 이것이 작동하는지 정확하게 설명하고 싶습니다.
이것은 정확하게의 함수 방법 파일 변경이 발생합니다. 파일을 수정할 때 운영 체제는 실제로 편집중인 파일을 수정하지 않습니다. 편집중인 파일이 변경 한 사본으로 바뀝니다. 따라서 기본적으로 파일 수정은 원본 파일의 복사본을 가져 와서 메모리에로드하고 (수정 한 위치) 원본 파일을 삭제하고 같은 위치에 동일한 이름의 새 파일을 만듭니다. Delete
파일을 수정하려면 NTFS 권한이 필요한 이유 입니다. 실제로 Advanced permissions
NTFS 개체 를 검사하는 경우 Modify
권한 이 없습니다 . 수정은 실제로 삭제 및 쓰기 일뿐입니다.
따라서 파일의 새 사본을 작성하려면이 새 파일의 파일 속성을 작성해야합니다 Write attributes
. 물론 속성을 작성하려면 NTFS 권한이 필요합니다 . 따라서 Write attributes
NTFS 권한이 없으면 파일을 수정할 수 없습니다 .
특히, 피츠로이과의 대화 덕분에 는 NTFS 파일 속성 요구 사항이 기록 될 것으로 사용자의 보안 컨텍스트에서 (를 빼고, 그 수없는 Write Attributes
완전히 새로운 하나를 만들 때 파일을 수정하지만,하지 않을 경우 허가), 것 될 파일의를 LastModificationTime
. 이것은 Standard Information
Microsoft Core Team 개발자 중 하나에 따르면 속성 의 일부입니다 .
답변
‘속성 쓰기’권한이 없으면 사용자가 파일을 수정할 수 없습니다. 그리고 Microsoft 문서에 따르면 이해가되지 않습니다. 그러나 파일을 수정 한다고 해서 파일 이 삭제 되고 재생되는 것은 아닙니다. 응용 프로그램이 수정을 위해 파일을 열면 운영 체제는 파일을 삭제하지 않습니다. 그러나 OS가하는 일은 동시 수정을 막기 위해 파일을 잠그는 것입니다. 내 생각에 파일 잠금은 ‘파일 속성 변경’개념에 속합니다. 따라서 속성을 변경할 수 없으면 파일을 수정할 수 없습니다.
귀하의 질문의 두 번째 부분에서는 재현 할 수 없습니다. 폴더에 적용되는 두 가지 다른 권한 인 ‘Create Files / …’및 ‘Create Folders / …’가 있으며 테스트 중에 문서에 따라 작동했습니다.