dd 작업이 허용되지 않습니다. 샌드박스를 탈출하는 방법은 무엇입니까?

dd 작업이 허용되지 않습니다. 샌드박스를 탈출하는 방법은 무엇입니까?

내 디스크의 불량 섹터를 복구하려고 하는데 이 과정에서 불량 섹터를 덮어써야 합니다. 웹의 수많은 소스에서는 dd를 사용하여 그렇게 할 것을 제안하지만 그렇게 해도 작동하지 않습니다.

$ sudo dd if=/dev/zero of=/dev/disk1 bs=512 count=1 seek=961575240
dd: /dev/disk1: Operation not permitted
$

마운트된 파일 시스템에 대해 이 작업을 수행하는 것에 대한 일종의 확인이 있을 수 있다고 생각하여 단일 사용자 모드(최소한 나뭇잎은 읽기 전용 모드임)로 부팅했지만 여전히 동일한 오류가 발생합니다. 그러나 샌드박싱에 대한 일부 추가 메시지도 표시됩니다.

Sandbox: dd(5) System Policy: deny(1) file-write-data /dev/disk1
Sandbox: dd(5) System Policy: deny(1) file-write-data /dev/disk1

샌드박스에서 dd를 허용하는 방법이 있나요? 나는 노력했다

sudo sandbox-exec -p '(version 1) (allow default)' /bin/dd if=/dev/zero of=/dev/disk1 bs=512 count=1 seek=961575240

하지만 여전히 작업이 허용되지 않는 오류가 발생했습니다.

이것은 OS X 10.11 GM에 있습니다.

답변1

나는 이것을 테스트할 희생적인 컴퓨터가 없지만 당신은 다음과 같은 상황에 처해 있다고 생각합니다.시스템 무결성 보호엘 캐피탄의 기능. 대부분 SIP가 수행하는 작업은 루트 사용자라도 디스크의 시스템 영역(/System, /sbin, /bin/ 대부분의 /usr 등)을 수정하거나, 시스템 프로세스를 조작하거나, 부적절하게 서명된 kext를 로드하는 등의 작업을 방지하는 것입니다. 그러나 시스템 폴더 보호를 강화하기 위해 시스템 볼륨이 있는 장치에 대한 원시 쓰기도 방지합니다. 예, 루트 사용자라도 마찬가지입니다(그게 핵심입니다. 루트 액세스 권한을 얻는 맬웨어로 인한 피해를 제한하는 것입니다).

생각하다이 한도는 다음에 적용되지 않습니다.복구 모드. 컴퓨터가 시작될 때 Command-R을 누르고 있으면 숨겨진 비상 파티션에서 부팅됩니다. 터미널(유틸리티 메뉴 아래에 있음)을 열고 dd거기서 시도해 보세요. dd복구 시스템에 없을 수도 있지만(아주 최소한임) /Volumes/Macintosh\ HD/bin/dd대신 사용할 수 있습니다. 당신은 필요하지 않습니다 sudo. 당신은 이미 루트입니다.

그래도 작동하지 않으면 를 사용하여 SIP를 비활성화한 csrutil disable다음 정상적으로 재부팅해 보십시오(참조:SIP 구성에 대한 Apple 문서). 그런 다음 작업이 끝나면 다시 활성화하는 것이 좋습니다. 이는 유용한 보안 기능입니다.

답변2

제 경우에는 "시스템 환경설정 > 보안 및 개인 정보 보호 > 전체 디스크 액세스 > 터미널" 또는 iTerm2를 변경해야 했습니다.

터미널에 전체 디스크 액세스 권한을 부여한 후 SIP/루트 또는 +를 dd변경하지 않고 iTerm2 작업이 허용되었습니다 . 저도 시도해 보았습니다 ;-)r

답변3

을 사용해 보세요 su.

Linux/unix에서는 먼저 다음과 같이 루트 사용자의 비밀번호를 설정해야 합니다.

sudo passwd root

그러면 이 작업을 수행할 수 있는 충분한 권한이 있어야 합니다.

또한 모든 파티션이 마운트 해제되었는지 확인하십시오.

입력 mount하고 어떤 파티션이 마운트되어 있는지 확인하십시오.

그 다음에:

sudo umount /dev/disk1sX

대신 disk1sX올바른 파티션을 작성하십시오.

관련 정보