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


2

디스크의 불량 섹터를 복구하려고하는데 불량 섹터를 덮어 써야합니다. 웹상의 수많은 소스는 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에 있습니다.


다른 섹터 인 경우에도 / dev / disk1에 마운트 된 것이 있습니까? 디스크 인 것 같습니다. 파티션이 마운트되지 않은 경우 적절한 오프셋으로 파티션에 쓰려고 할 수 있습니다. 마운트 된 파티션의 내용을 읽기 전용 인 경우에도 변경하지 마십시오. 커널이 마음에 들지 않을 수 있으므로 시스템이 불안정 할 수 있습니다. 참고 : 자신을 포함하여 많은 사람들은 드라이브에 단일 오류가 발생하면 더 이상 드라이브를 신뢰해서는 안된다고 말합니다. 이러한 드라이브는 첫 번째 디스크 오류가 발생하지 않은 일반 드라이브보다 훨씬 빠르게 진행되는 경향이 있습니다. 지원!
TOOGAM

답변:


2

이것을 테스트 할 희생적인 컴퓨터는 없지만 El Capitan 의 시스템 무결성 보호 기능 을 사용하고 있다고 생각합니다 . 대부분 SIP가 수행하는 작업은 루트로도 디스크의 시스템 영역 (/ System, / sbin, / bin / 대부분의 / usr 등)을 수정하거나 시스템 프로세스를 혼란 시키거나 부적절하게 서명 된 kext를로드하는 것을 방지합니다. 그러나 시스템 폴더를 보호하기 위해 시스템 볼륨이있는 장치에 대한 원시 쓰기도 방지합니다. 그렇습니다. 루트 사용자 일지라도 (즉, 루트 액세스 권한을 얻는 멀웨어의 피해를 제한하는 것입니다).

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

그래도 문제가 해결되지 않으면으로 SIP를 비활성화 csrutil disable한 다음 정상적으로 재부팅하십시오 ( SIP 구성에 관한 Apple 문서 참조 ). 그런 다음 완료되면 다시 사용하는 것이 좋습니다. 유용한 보안 기능입니다.


이제 루트에 대한 루트가 필요합니다. 천재 / sarc
cde

고마워, 그것은 매우 유익했다. 복구 모드 / 터미널은 권한이나 샌드 박스 오류를 얻지 못했다는 점에서 조금 더 나아 갔지만 여전히 장치가 사용 중 인 것에 대해 불만이 있었으므로 SD 카드에서 부팅하여 dd를 수행했습니다.
Chris Eveland

0

를 사용해보십시오 su.

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

sudo passwd root

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

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

입력 mount한 파티션을 입력 하고 확인하십시오.

그때:

sudo umount /dev/disk1sX

disk1sX올바른 파티션 을 작성하는 대신


루트 쉘에서 dd를 실행하면 (완전히 부팅되거나 단일 사용자 모드로) 'sudo dd ...'와 동일한 결과가 나타납니다. 루트 권한으로 실행하더라도 샌드 박스에있는 것 같습니다.
Chris Eveland

당신은 시도 했습니까 sudo chown root:root /dev/disk1? / dev / disk1에 쓸 수 있습니까? 또 다른 문제일지도 모릅니다.
xdevs23 16:25에서

나는 사용했다sudo diskutil unmountDisk /dev/diskNsX
Jacksonkr
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.