이전 Windows 설치에서 데이터 파일에 대한 NTFS 권한을 제거합니다.

이전 Windows 설치에서 데이터 파일에 대한 NTFS 권한을 제거합니다.

최근에 새 SSD에 Windows 10을 새로 설치하고 이전 데이터 파일을 드라이브에 복원했습니다. 문제는 백업 프로그램에 권한을 복원하지 말라고 했는데도 결국 엉망이 되어버렸다는 것입니다.

난 이미 처형했어takeown /f c:\src /r /d Y

Explorer의 속성 -> 보안에 들어가서 "FULL CONTROL" 권한을 가진 사용자를 폴더에 추가하고 하위 항목에 적용해 보았습니다. Windows는 아마도 30분 동안 실행되었지만 속성: "읽기 전용"은 여전히 ​​사각형으로 채워져 있었습니다.

"읽기 전용" 사각형을 지우고 재귀적으로 적용했는데 Windows가 15~20분 더 실행되었는데... fscking 사각형이 여전히 채워져 있습니다.

ICACLS를 사용해야 할 것 같은데... 안내 없이는 사용하기가 두렵습니다. 말 그대로 과거에 ICACLS를 사용하여 이와 같은 상황을 해결하려고 시도할 때마다 결국 문제가 더욱 악화되었습니다. 나는 Unix 스타일 권한과 소유권을 잘 이해하지만 NTFS 권한과 관련하여 실수를 저지를 때마다 NTFS 권한이 나를 두들겨 패었습니다.

과거에는 무차별 대입을 통해 이 문제를 해결하기 위해 전통적인 해결 방법을 사용했습니다. Linux로 부팅하고, 디렉터리(타임스탬프 저장)를 FAT32 볼륨에 재귀적으로 복사하고, Windows로 다시 부팅하고, NTFS 볼륨에서 원래 디렉터리를 삭제합니다. , 그런 다음 NTFS 권한을 제거하여 FAT32 볼륨에서 다시 복사합니다. 지금은 할 수 없습니다... 디렉토리에 4GB 이상의 파일이 너무 많습니다.

그렇다면... ICACLS를 사용하여 비슷한 것을 어떻게 달성할 수 있습니까?

해결책:

아래 답변을 바탕으로 효과가 있었던 방법은 다음과 같습니다.

icacls c:\src /reset /T /L /Q

takeown /f c:\src /r /d Y(만약에 대비해 icacls 이후 게시 중단을 다시 실행했습니다.)

attrib -r -h -s c:\src /s /d

다음과 같이 밝혀졌습니다.이 답변, 이것은 UI 디자인이 매우 열악한 Windows 탐색기의 경우입니다. 간단히 말해서 Windows는 폴더의 내용이 "읽기 전용이 아님"이라고 보고하지 않습니다. 확인란을 사용하여 폴더에 포함된 파일의 읽기 전용 상태를 지우거나 설정할 수 있지만 확인란 자체의 상태는 현재 상태에 대한 의미를 나타내지 않습니다.

분명히 Microsoft의 근거는 모든 Explorer 폴더에 사용자 관점에서 읽기 전용인 숨겨진 시스템 파일이 포함되어 있다는 것입니다(파일이 없으면 Explorer는 있는 것처럼 가장합니다). 따라서 사용자가 고의로 폴더에 넣은 파일이 읽기 전용이 아니더라도 모든 폴더에는 읽기 전용 파일이 하나 이상 포함되어 있습니다. 한숨을 쉬다.

어쨌든 내 문제는 이제 해결되었습니다. Gradle과 Android Studio는 권한 오류로 인해 종료되지 않고 파일을 빌드할 수 있으므로 ACL을 재설정하고 소유권을 가져오고 읽기 전용 및 시스템 플래그(있는 경우)를 지우면 문제가 해결되었습니다.

답변1

"속성: [✔] 읽기 전용"은 처음부터 NTFS 권한 플래그가 아닙니다. 이는 "MS-DOS 속성"이라고도 알려진 완전히 별개의 파일별 플래그 세트입니다. (리눅스 채팅 비교)

"숨김", "시스템" 및 "아카이브"와 함께 이 속성은 실제로 DOS FAT 파일 시스템에서 유래하므로 파일을 FAT32 볼륨으로 복사하거나 그 반대로 복사해도 제거할 수 없습니다.

재귀적으로 제거하려면,

  1. 해당 파일 및 폴더에 대한 "속성 쓰기" 권한이 있어야 합니다.

  2. attrib -r -h -s c:\src /s /d


이러한 속성은 Linux에서 system.ntfs_attrib_bexattr로 액세스할 수 있습니다. 예:

setfattr -n system.ntfs_attrib_be -h -v 0x00000020 <filename>

관련 정보