¿Cómo deshabilito la Protección de la Integridad del Sistema (SIP) AKA "rootless" en macOs [OS X]

144

Apple ha introducido Protección de integridad del sistema , también conocida como "rootless", con OS X 10.11, El Capitán . Entiendo que este es un paso para la protección general contra el malware, pero como desarrollador necesito acceso de escritura a algunos de los archivos que bloquea.

¿Cómo deshabilito esta protección?

    
pregunta bdnchr 01.10.2015 - 21:09

6 respuestas

137

La documentación de Apple cubre la desactivación de SIP, Acerca de la protección de integridad del sistema en tu Mac y

Un artículo en lifehacker.com enumera estos pasos:

  
  1. Reinicie su Mac en modo de recuperación reiniciando su computadora y presionando Comando + R hasta que aparezca el logotipo de Apple en su pantalla.
  2.   
  3. Haz clic en Utilidades > Terminal.
  4.   
  5. En la ventana de la Terminal, escriba csrutil disable y presione Enter .
  6.   
  7. Reinicia tu Mac.
  8.   

Puede verificar si un archivo o carpeta está restringido emitiendo este comando ls usando el capital O (y no cero) para modificar el indicador de lista larga:

ls -lO /System /usr 

Busque el texto restringido para indicar dónde se aplica el SIP.

De forma predeterminada (= SIP habilitado), las siguientes carpetas están restringidas (consulte Página de soporte de Apple ):

/System
/usr
/bin
/sbin
Apps that are pre-installed with OS X

... y las siguientes carpetas son gratuitas:

/Applications
/Library
/usr/local
    
respondido por el Mike Scott 01.10.2015 - 21:16
95

Es posible deshabilitar SIP iniciando Recovery HD y ejecutando el siguiente comando:

csrutil disable

TambiénesposiblehabilitarlasproteccionesSIPydeshabilitarselectivamentealgunosaspectos,agregandounoomásindicadoresalcomandocsrutilenable.Todosrequierenseriniciadosdesdelarecuperaciónparaconfigurarlos:

HabiliteSIPypermitalainstalacióndeextensionesdekernelsinfirmar

csrutilenable--withoutkext

HabilitaSIPydeshabilitalasproteccionesdelsistemadearchivos

csrutilenable--withoutfs

HabilitaSIPydeshabilitalasrestriccionesdedepuración

csrutilenable--withoutdebug

HabilitarSIPydeshabilitarlasrestriccionesdeDTrace

csrutilenable--withoutdtrace

HabilitaSIPydeshabilitalasrestriccionesparaescribirenNVRAM

csrutilenable--withoutnvram

TambiéntengounapublicacióndisponibleconmásinformaciónsobreSIP:

Protección de integridad del sistema - Agregar otra capa al modelo de seguridad de Apple

    
respondido por el Rich Trouton 06.10.2015 - 20:26
12

Si el objetivo es simplemente deshabilitar la protección de integridad del sistema, entonces arranque en la partición de HD de recuperación como se recomendó anteriormente en las otras respuestas aquí a través de Command + r . no es la forma más rápida de hacer esto.

Puede combinar el inicio en modo de usuario único con el inicio de HD de recuperación en una combinación de teclas de inicio sin documentar:

  • enlace cubre la recuperación normal
  • mantenga Comando + r + s para iniciar el Modo de recuperación de un solo usuario.

Esto te lleva al entorno mínimo necesario para esto directamente .

    
respondido por el LangLangC 14.09.2017 - 01:23
4

Si todo lo que necesita es acceder a / usr / local, eche un vistazo a esta página: enlace

La idea es temporalmente desactivar SIP usando csrutil disable , agregar /usr/local , usar chflags para establecer ese directorio en no restringido

 sudo mkdir /usr/local && sudo chflags norestricted /usr/local && sudo chown -R $(whoami):admin /usr/local

y luego vuelva a habilitar SIP usando csrutil enable .

Si /usr/local ya existe en el momento de la actualización, incluso lo anterior no es necesario. Simplemente puede ejecutar

sudo chown -R $(whoami):admin /usr/local
    
respondido por el m_cuffa 31.10.2015 - 13:02
4

Sería más seguro modificar /etc/paths para que /usr/local/bin sea simplemente antes de usr/bin . De esa manera, puede realizar su trabajo de desarrollo dentro de /usr/local/bin sin tener que deshabilitar SIP.

Las instalaciones limpias del sistema operativo han ordenado /etc/paths de esta manera desde El Capitán, pero si estaba actualizando el sistema operativo de Yosemite o anterior, tendría que modificar el orden de ruta manualmente.

    
respondido por el user260467 15.03.2017 - 06:16
0

Si no puedes acceder a la partición de recuperación para ejecutar csrutil disable , intenta configurar nvram boot args, por ejemplo,

sudo nvram boot-args="rootless=0"
    
respondido por el kenorb 05.08.2016 - 17:34

Lea otras preguntas en las etiquetas