Windows에서 폴더를 읽기 전용으로 만드는 방법은 무엇입니까?

Windows에서 폴더를 읽기 전용으로 만드는 방법은 무엇입니까?

그래서 일부 파일을 폴더에 쓰는 것을 방지하고 싶습니다. 나는 항상 비교하고 데이터를 대상 프로젝트로 전송하는 back_up 폴더를 사용하여 작업합니다. 문제는 가끔 실수로 백업 파일을 편집한다는 것입니다. 내 자신의 편집/쓰기 권한을 거부할 수 있는 방법이 있나요? 파일 이름이 변경되거나 삭제되는 것을 원하지 않습니다. 폴더 읽기 전용 플래그를 설정하는 것은 전혀 아무 일도 하지 않습니다. 그 후에는 다시 문제 없이 파일을 편집/삭제할 수 있습니다(적어도 Win 8.1에서는). 이것은 나에게 매우 중요합니다. 현재로서는 많은 백업 파일이 그런 식으로 손상되어 많은 문제를 일으키기 때문입니다. 어떤 아이디어가 있나요?

최신 버전의 Windows 8.1 x64를 실행하고 있습니다.

답변1

원래 답변:

NTFS인 경우 파일 시스템 보안 기능을 사용할 수 있습니다.

  1. 폴더의 "보안" 탭을 편집하십시오. 이전에 변경하지 않았다고 가정합니다. "인증된 사용자"를 삭제하면 먼저 상속을 비활성화해야 한다는 경고가 표시될 수 있습니다. "고급" 옵션에서 그렇게 하십시오.

  2. UAC가 켜져 있는지 확인하세요.

이제 해당 폴더 내의 항목을 편집/추가/삭제하려고 하면 UAC가 경고를 표시하며, 매번 비밀번호를 입력해야 하는 더 높은 수준으로 설정할 수도 있습니다.

편집하다: 위 방법은 Windows Vista+에만 적용되고 관리자 권한과 조정되지 않은 파일/폴더 보안 설정이 필요한 아주 쉬운 가이드입니다.

그러나 기본 원리를 이해한다면 NTFS를 사용하는 거의 모든 Windows 버전, 모든 사용자 계정에서 이 작업을 수행할 수 있습니다.

일반 작업 계정이 A이고 다른 "안전한" 계정이 B라고 가정하면 폴더 소유자를 B로 설정하고 해당 계정에 전체 권한을 부여할 수 있습니다("모든 하위 개체 권한을 이 개체에서 상속 가능한 권한으로 바꾸기"를 선택하는 것을 잊지 마세요). ") 그런 다음 계정 A를 읽기 전용으로 추가하면 이제 계정 B로만 쓸 수 있으며 일일 계정 A에서는 계속 읽고 사용할 수 있습니다.

관리자 권한이 없으면 접근 목록에서 관리자를 제거할 수 없으며, 관리자인 경우 소유자를 변경할 수 없습니다. 하지만 이 방법은 어쨌든 작동해야 하며, 폴더를 생성하는 경우에도 소유자가 기본값이어야 합니다.

추신. 위의 모든 내용은 내 경험을 바탕으로 한 것이므로 더 나은 방법이 있으면 조언을 환영합니다.

답변2

파일이 포함된 단일 폴더입니다. 변경할 때마다 "다른 이름으로 저장"을 수행하고 버전 번호를 올립니다. 하지만 가끔 실수로 "저장"을 눌러 파일을 덮어쓰는 경우가 있습니다.스티븐 바셀라로


폴더 내의 파일을 읽기 전용으로 접근 가능하게 만드는 방법

당신이 사용할 수있는ICACLS그리고 명시적으로 부정한다.속성 쓰기특정 폴더 내의 모든 파일에 대한 권한을 부여하고 자신(또는 보안 그룹)이 이러한 파일을 덮어쓰거나 수정하는 것을 방지하지만 해당 파일을 열 수 있는 읽기 액세스는 허용합니다.

다음은 현재 도메인(또는 로컬 시스템 이름)과 계정에 대한 액세스를 거부하기 위해 %userdomain%\%username%배치 스크립트를 실행하는 시스템에 로그인된 사용자 이름을 정의 하는 환경 변수가 포함된 배치 스크립트입니다 . <domain>\<username>필요한 경우 유효한 도메인 보안 그룹 이름으로 쉽게 바꿀 수 있습니다(예: <domain>\<securitygroupname>).

배치 스크립트

전체 명시적 폴더 경로(또는 UNC 경로)가 되도록 변수 값을 Folder=읽기 전용 액세스 가능한 기존 파일로 만드는 데 필요한 위치로 바꿉니다.

@ECHO ON

SET Folder=C:\Users\User\Desktop\Test
SET Security=%userdomain%\%username%

ICACLS "%Folder%\*" /deny "%Security%":(OI)(WA)
EXIT

파일 ACL 권한을 보면속성 쓰기이제 명시적인 거부가 적용되었습니다.이 폴더와 파일.

여기에 이미지 설명을 입력하세요

다음은 이미 배치 스크립트가 실행된 V1, V2 등의 테스트 문서가 있는 폴더입니다.

여기에 이미지 설명을 입력하세요

파일을 저장하려고 하면 다른 이름으로 저장 대화 상자가 나타나며, 동일한 파일 이름으로 이미 존재하는 파일을 덮어쓰려고 하면 해당 파일은 읽기 전용이므로 액세스 거부 오류 메시지가 표시됩니다. 계정.

여기에 이미지 설명을 입력하세요

다른 이름으로 저장하고 파일에 다른 이름을 지정하되 읽기 전용으로 액세스할 수 있도록 모든 파일을 잠근 동일한 폴더에 지정하면 여기에서 숫자를 1씩 늘릴 수 있습니다.

이제 이 폴더에 새로 저장된 모든 파일에는속성 쓰기거부되므로 이러한 권한 제한은 새 파일 이름의 파일이 이 폴더에 저장되면 즉시 적용됩니다.

여기에 이미지 설명을 입력하세요


추가 자료 및 자료

  • 환경 변수

  • ICACLS

    /deny Sid:perm explicitly denies the specified user access rights.
        An explicit deny ACE is added for the stated permissions and
        the same permissions in any explicit grant are removed.
    
    WA - write attributes
    
    
        inheritance rights may precede either form and are applied
        only to directories:
    (OI) - object inherit
    

답변3

Romeo의 말이 맞습니다. 속성을 통해 개별 파일을 읽기 전용으로 만들 수 있지만 삭제로부터 보호할 수는 없습니다.

여러 파일을 읽기 전용으로 빠르게 변경하려는 경우 추가 제안 사항입니다.

명령 프롬프트를 열고 attrib +r [path]와일드카드를 활용하여 명령을 입력합니다.*

답변4

폴더 속성을 마우스 오른쪽 버튼으로 클릭하고 속성 아래에서 ReadOnly를 설정하고 적용합니다.

이렇게 하면 이 폴더(선택한 경우 하위 폴더 포함)의 모든 파일이 읽기 전용으로 설정됩니다. R/O 파일을 저장하려고 하면 소프트웨어에서 다른 이름으로 저장하라는 메시지가 표시됩니다.

관련 정보