Operación dd no permitida, ¿cómo escapar del sandbox?

Operación dd no permitida, ¿cómo escapar del sandbox?

Estoy intentando recuperar un sector defectuoso en mi disco y, al hacerlo, necesito escribir sobre el sector defectuoso. Numerosas fuentes en la web sugieren usar dd para hacerlo, pero hacerlo no funciona:

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

Pensé que tal vez había algún tipo de verificación sobre cómo hacer esto en un sistema de archivos montado, así que inicié en modo de usuario único (que al menos deja el modo de solo lectura), pero sigo recibiendo el mismo error. Sin embargo, también se muestran algunos mensajes adicionales sobre el sandboxing.

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

¿Hay alguna manera de permitir que dd salga del sandbox? Lo intenté

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

pero eso todavía daba el error de operación no permitida.

Esto está en OS X 10.11 GM

Respuesta1

No tengo una computadora de sacrificio para probar esto, pero creo que te estás topando con elProtección de la integridad del sistemaReportaje en El Capitán. Principalmente, lo que hace SIP es impedirle (incluso como root) modificar áreas del sistema del disco (/System, /sbin, /bin/ la mayor parte de /usr, etc.), alterar los procesos del sistema, cargar kexts firmados incorrectamente, etc. Pero para hacer cumplir esa protección de las carpetas del sistema, también evita las escrituras sin formato en el dispositivo en el que se encuentra el volumen del sistema. Sí, incluso si eres root (ese es el punto: limitar el daño causado por el malware que obtiene acceso de root).

Ipensareste límite no se aplicará enmodo de recuperación. Mantenga presionada la tecla Comando-R mientras la computadora se inicia y arrancará desde una partición de emergencia oculta. Abra Terminal (está en el menú Utilidades) y pruebe dddesde allí. ddEs posible que no exista en el sistema de recuperación (es bastante mínimo), pero puedes usarlo /Volumes/Macintosh\ HD/bin/dden su lugar. No lo necesitarás sudo, ya eres root.

Si eso no funciona, intente deshabilitar SIP con csrutil disabley luego reinicie normalmente (consulteDocumento de Apple sobre la configuración de SIP). Luego, cuando haya terminado, le recomendaría volver a habilitarlo; es una característica de seguridad útil.

Respuesta2

En mi caso tuve que cambiar mis "Preferencias del Sistema > Seguridad y Privacidad > Acceso total al disco > Terminal" o iTerm2.

Después de que le di acceso total al disco a la Terminal o ddse permitieron las operaciones de iTerm2 sin cambiar SIP/root o + r... Lo intenté también ;-)

Respuesta3

Intenta usar su.

En Linux/Unix primero debes establecer una contraseña para el usuario root como:

sudo passwd root

Entonces deberías tener suficiente permiso para hacer esto.

También verifique si todas las particiones están desmontadas.

Escriba mounty verifique qué particiones están montadas.

Entonces:

sudo umount /dev/disk1sX

En lugar de disk1sXescribir la partición correcta.

información relacionada