operação dd não permitida, como escapar do sandbox?

2

Estou tentando recuperar um setor ruim no meu disco e, ao fazer isso, preciso escrever sobre o setor defeituoso. Várias fontes na Web sugerem usar o dd para fazer isso, mas isso não funciona:

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

Eu percebi que talvez houvesse algum tipo de verificação sobre como fazer isso em um sistema de arquivos montado, então inicializei no modo de usuário único (que pelo menos sai no modo somente leitura), mas ainda recebo o mesmo erro. Algumas mensagens adicionais sobre sandboxing também são exibidas no entanto.

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

Existe uma maneira de permitir dd fora da sandbox? Eu tentei

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

mas que ainda deu a operação não permitida erro.

Isso está no OS X 10.11 GM

    
por Chris Eveland 25.09.2015 / 15:41

2 respostas

1

Eu não tenho um computador de sacrifício para testar isso, mas acho que você está correndo para o System Integrity Protection no El Capitan. Principalmente, o que o SIP faz é impedir que você modifique as áreas do sistema (/ System, / sbin, / bin / maior parte do / usr, etc), mexendo com processos do sistema, carregando kexts assinados incorretamente, etc. Mas, para reforçar essa proteção de pastas do sistema, também impede gravações brutas no dispositivo em que o volume do sistema está ativado. Sim, mesmo se você for root (esse é o objetivo - é limitar os danos causados por malware que obtém acesso root).

Eu acho que esse limite não será aplicado no modo de recuperação . Segure Command-R quando o computador for iniciado e ele será inicializado a partir de uma partição de emergência oculta. Abra o Terminal (ele está no menu Utilitários) e experimente o dd a partir dele. dd pode não existir no sistema de recuperação (é mínimo), mas você pode usar /Volumes/Macintosh\ HD/bin/dd . Você não precisará de sudo , você já é root.

Se isso não funcionar, tente desabilitar o SIP com csrutil disable e reinicialize normalmente (consulte documento da Apple sobre como configurar o SIP ). Então, quando terminar, recomendo reativá-lo - é um recurso de segurança útil.

    
por 26.09.2015 / 07:49
0

Tente usar su .

No linux / unix você primeiro precisa definir uma senha para o usuário root como:

sudo passwd root

Então você deve ter permissão suficiente para fazer isso.

Verifique também se todas as partições estão desmontadas.

Digite mount e verifique quais partições estão montadas.

Então:

sudo umount /dev/disk1sX

Em vez de disk1sX , escreva a partição correta.

    
por 25.09.2015 / 16:26

Tags