Windows에서 파일 권한을 변경하는 chmod와 동일


답변:


25

그렉 언급 attrib -하지만 attrib 어디 가까운 아니다 chmod- attrib하나의 파일의 읽기 전용 / 숨김 속성을 설정할 수 있습니다 -처럼 세분화 된 컨트롤을 제공하지 icacls않습니다.

icacls액세스 제어 목록을 설정 / 재설정하므로 개별 SID 및 그룹에 대한 권한을 부여 / 거부 할 수 있습니다. 그래도 상당히 복잡합니다.

다음은 github gist에 저장 한 예입니다 . 폴더의 모든 파일에 대한 소유권 및 액세스 제어 목록을 재설정하고 특히 이전 설치에서 파일을 이동할 때 성가신 "이 작업을 수행하려면 ..의 권한이 필요합니다"문제를 해결하는 데 유용합니다.

icacls * /reset /t /c /q 

재설정은 기존 목록을 기본 목록으로 바꿉니다.
/t모든 파일, 폴더 및 하위 폴더에서 재귀 적으로 작동 하지만 오류가 발생하더라도 남은 파일을 계속해서
/q성공 메시지를 표시하지 않습니다
/c.

기존 ACL 백업과 같은 작업을 수행하고 모든 ACL에 적용 할 수도 있습니다. 다른 옵션 및 스위치를 잘 설명하는 ss64 를 살펴보십시오 .


문제는 모든 파일에 대해 "액세스가 거부되었습니다"라는 메시지가 있다는 것입니다. 이 주위에 방법이 없습니까? cmd가 아닌 이것을 차단하는 학교 시스템에서?
theonlygusti

관리자 권한이 필요합니다. cmd[Win] + [R]을 치면 얻을 수 있는 "정상적인" 요소는 없습니다. 이러한 특별한 요구에 대해서는 "관리자 권한으로 실행"(또는 이와 비슷한; 독일 Windows 시스템에 있음)이 선택된 "관리 쉘"바로 가기가 있습니다 (진한 빨간색 배경색).
Tobias

실제로 권한 거부 오류 문제가 있습니다. 내가 관리자이고 내가 실행하는 콘솔 인 경우 도대체 무엇을 할 수 있는가? 그게 뭐야?
Čamo


9

Linux와 DOS / Windows는 다른 목적으로 속성을 사용하고 (Churhuranga가 전에 말했듯이) 보안 모델이 다르기 때문에 (슬프게도) 정확히 동등한 것은 아닙니다.

  • Windows 파일 시스템에는 "hidden"( H) 및 "system"( S) 속성이 있으며 Linux에는 해당 속성이 없습니다. 파일 이름 앞에 점 ( .) 을 추가하면 파일이 숨겨집니다 .
  • Windows "아카이브"( A) 속성 과 동등한 것은 없습니다 .
  • xDOS / Windows 파일 속성 의 "실행 가능"( ) Linux 속성 과 동일하지 않습니다 .
  • 윈도우 "디렉토리"(에 해당 D) 속성 (하지만 어쨌든 변경할 수 없습니다).
  • Linux 파일 시스템에서 모든 항목은 정확히 하나의 사용자와 정확히 하나의 그룹이 소유하며 각 항목 및 다른 항목에 대해 읽기 / 쓰기 / 실행을 허용 할 수 있습니다. ACL은 (Windows에서 사용되는 것과 같이) 훨씬 유연하지만 더 복잡하며, 명령 줄 구문은 PITA입니다 (물론 나의 겸손한 견해)

DOS 파일 속성 R(읽기 전용)은 이와 동등한 것으로 간주 될 수있는 속성 입니다 .이 속성 세트w모두 누락 된 속성 과 거의 같습니다 . 그러나이 속성을 변경할 수있는 권한은 ACL의 적용을받습니다.

Windows에서 chmod/ chown동등한 기능 을 갖는 것이 좋을 수도 있습니다 . 어쩌면 일부 스크립팅 언어로 작성되어 호출 attribcacls(또는 후임자) 언어 가 없습니다.


좋은 첫 게시물!
slm

파일 속성과 권한이 혼동되고 있습니다. Linux에는 chattr을 통해 변경할 수있는 파일 속성이 있습니다 . Linux는 속성에 대한 세분화 된 액세스 제어 기능을 가지고 있습니다 (예 : [i] mmutable 속성은 루트 또는 CAP_LINUX_IMMUTABLE프로세스 에 의해서만 설정 될 수 있음 ). 반면 Windows에서 속성 설정에 대한 액세스는 전혀 또는 전혀 없습니다. Windows에서이 명령을 사용하여 읽기 전용 파일 속성을 설정하는 것은 일반적인 실수 입니다 chmod. 불행히도 시스템은 시스템을 개발하는 프로그래머에게만 정보가 제공됩니다.
Eryk Sun

@eryksun : 흥미 롭습니다. 그 chattr명령을 몰랐습니다 . 그러나 "파일 속성과 권한을 혼동"한다는 의미는 아닙니다. AFAICS, DOS 속성 에 대해 쓴 모든 단어 는 여전히 정확합니다.
Tobias

파일은 많은 (확장 된) 속성으로 구성됩니다. Unix에서 핵심 속성 세트는 파일 모드 (권한)를 포함하여 inode에 저장됩니다. 다른 확장 속성 (예 : ACL)은 외부에 저장 될 수 있습니다. Windows에는 Unix "mode"속성이 없습니다. 또한 파일 시스템에 대한 공통 inode 레코드가 없습니다. NTFS MFT 레코드는 비슷합니다. POV에서 표준 Windows 파일 속성은 파일 레코드의 단일 속성입니다. 이들은 chattrinode가 없기 때문에 Windows에 디렉토리 속성이 있다는 점을 제외하고는를 통해 설정된 Linux 파일 속성에 해당합니다 .
Eryk Sun

이 질문은 "Windows에서 파일 권한을 변경하기위한 chmod와 동등한 기능"에 대해 묻습니다. chmod파일 "mode"속성과 같은 것이 없기 때문에 Windows 와 직접적으로 동일한 것은 없습니다. 표준 Windows 파일 속성 세트는 이와 관련이 없습니다. 읽기 전용 속성은 파일 권한이 아닙니다. 기본적으로 파일이 스톤으로 작성되었으므로 파일을 수정하려는 모든 시도가 실패해야합니다. 리눅스 "불변"파일 속성은 비슷합니다. Windows는 권한에 대해서만 ACL을 사용하므로 icacls.exe 등은 권한 주제에 대해 유일하게 유사한 명령입니다.
Eryk Sun


5

attrib명령은 매우 기본적인 것들 (읽기 전용, 아카이브 플래그)과 가장 일치합니다. 그런 다음 ACL (access control list) 명령이 cacls있습니다. 마지막으로 Windows는 실제로 Posix와 호환되므로 유닉스 계열 플래그가 존재합니다. Cygwin 도구 세트를 설치하면가 표시됩니다 chmod. (유닉스 명령과 동등한 것을 찾고 있기 때문에 Cgygwin을 다운로드하고 설치하는 것이 흥미로울 수 있습니다.)



2

Windows의 보안 모델이 Linux와 다르기 때문에 Windows에는 chmod라는 것이 없습니다. attrib명령을 사용 하여 객체의 속성을 변경할 수 있습니다 . (그러나 그들은 글로벌 속성에 더 가깝습니다.)


2

나에게 해결 방법은 Cygwin을 설치하고 bin 폴더를 시스템 경로에 추가하는 것입니다. 그런 다음 명령 행에서 "chmod"를 실행하면 작동합니다. 정확성을 확인하지는 않았지만


1
참조 : 간단 하고 상세
Bob
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.