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

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

Estou tentando recuperar um setor defeituoso no meu disco e, ao fazer isso, preciso sobrescrever o setor defeituoso. Inúmeras fontes na web sugerem usar 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
$

Achei 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 deixa o modo somente leitura), mas ainda recebo o mesmo erro. Algumas mensagens adicionais sobre sandbox também são exibidas.

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 que o dd saia da sandbox? tentei

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

mas isso ainda deu erro à operação não permitida.

Isso está no OS X 10.11 GM

Responder1

Não tenho um computador sacrificial para testar isso, mas acho que você está se deparando comProteção da integridade do sistemadestaque em El Capitan. Principalmente, o que o SIP faz é impedir que você (mesmo como root) modifique áreas do sistema do disco (/System, /sbin, /bin/ a maior parte de /usr, etc), mexa nos processos do sistema, carregue kexts assinados incorretamente, etc. Mas, para reforçar essa proteção das pastas do sistema, também evita gravações brutas no dispositivo em que o volume do sistema está. Sim, mesmo se você for root (esse é o ponto - é para limitar os danos causados ​​por malware que obtém acesso root).

EUpensaresse limite não será aplicado emmodo de recuperação. Segure Command-R enquanto o computador inicia e ele inicializará a partir de uma partição de emergência oculta. Abra o Terminal (está no menu Utilitários) e experimente a ddpartir daí. ddpode não existir no sistema de recuperação (é mínimo), mas você pode usar /Volumes/Macintosh\ HD/bin/dd. Você não vai precisar sudo, você já é root.

Se isso não funcionar, tente desabilitar o SIP com csrutil disablee reinicializar normalmente (vejaDocumento da Apple sobre configuração do SIP). Então, quando terminar, recomendo reativá-lo – é um recurso de segurança útil.

Responder2

No meu caso, tive que alterar minhas “Preferências do Sistema > Segurança e Privacidade > Acesso Total ao Disco > Terminal” ou iTerm2.

Depois que eu dei acesso total ao disco ao Terminal ou ddas operações do iTerm2 foram permitidas sem alterar SIP/root ou + r... eu tentei isso também ;-)

Responder3

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 mounte verifique quais partições estão montadas.

Então:

sudo umount /dev/disk1sX

Em vez de disk1sXescrever a partição correta.

informação relacionada