Nota: deshabilitar la Protección de Integridad del Sistema es peligroso y hace que su sistema sea más vulnerable al malware.
Como lo explica Apple en la documentación para desarrolladores sobre SIP:
Advertencia
Desactiva SIP solo temporalmente para realizar tareas necesarias y vuélvelo a habilitar lo antes posible. No reactivar SIP cuando hayas terminado de probar dejará tu computadora vulnerable a código malicioso.
Si simplemente estás intentando configurar herramientas de desarrollo de sistema como vim
, python2
, ruby
y demás, seguramente quieres instalar versiones mantenidas por la comunidad desde Homebrew y configurar esas en su lugar. Las herramientas proporcionadas por el sistema pueden ser convenientes para el inicio, pero si requieres excepciones de SIP para tu flujo de trabajo diario, seguramente estás haciendo las cosas de una manera que se romperá en una versión futura del sistema operativo, y puede romper aplicaciones y otra funcionalidad del sistema mientras tanto.
Las razones válidas para desactivar SIP podrían ser:
- si estás investigando malware por tu cuenta en un entorno desechable, como en una máquina virtual macOS
- si estás intentando modificar la funcionalidad principal del sistema operativo para despliegue en un entorno altamente especializado, como un quiosco público
- si necesitas una extensión de kernel heredada como MacFUSE en una Mac M1
Además de las implicaciones de seguridad, también es importante el hecho de que todo lo que hagas en una Mac con SIP deshabilitado no funcionará en la Mac de cualquier otra persona a menos que también lo desactiven primero. Si estás desarrollando aplicaciones para Mac, entonces tu sistema se vuelve menos útil como plataforma de pruebas porque no sabes si tu código funciona solo porque modificaste tu sistema. Si estás desarrollando para otra plataforma como despliegue en un servidor web, entonces no puedes compartir tu configuración de entorno de desarrollo con otros desarrolladores de tu equipo sin comprometer su seguridad también.
Aquí te decimos cómo hacerlo si realmente necesitas hacerlo:
La documentación de Apple cubre la desactivación de SIP, Sobre la Protección de Integridad del Sistema en tu Mac y Configurando la Protección de Integridad del Sistema.
Un artículo en lifehacker.com enumera estos pasos:
- Reinicia tu Mac en Modo de Recuperación reiniciando tu computadora y manteniendo presionadas las teclas Command+R hasta que aparezca el logo de Apple en tu pantalla.
- Haz clic en Utilidades > Terminal.
- En la ventana del Terminal, escribe
csrutil disable
y presiona Enter.
- Reinicia tu Mac.
Puedes verificar si un archivo o carpeta está restringido emitiendo este comando ls
utilizando la letra O mayúscula (y no el cero 0) para modificar la bandera de listado largo:
ls -lO /System /usr
Busca el texto restringido para indicar dónde se aplica SIP.
Por defecto (=SIP habilitado), las siguientes carpetas están restringidas (ver página de Soporte de Apple):
/System
/usr
/bin
/sbin
Aplicaciones preinstaladas con OS X
... y las siguientes carpetas no lo están:
/Applications
/Library
/usr/local
2 votos
Aunque puedes solucionar todos los aspectos de SIP, hay muchas entradas para esto - recuerda que al comprometer el sistema, estás construyendo cosas que pueden no funcionar en la máquina de tu cliente, donde SIP está activado, y los usuarios no aceptarán desactivarlo
5 votos
@Motti Shneor - Sin embargo, en algunos casos esto debe desactivarse simplemente para tener acceso de escritura e instalar algunos SDK para propósitos de desarrollo. Esto no requeriría que el cliente haga lo mismo.
0 votos
Vengo de un fondo de Unix, tratando de entender la lógica de rootless: ¿es porque la computadora probablemente sea una máquina de usuario único, todo se instalará en el directorio de inicio del usuario, de modo que no sea necesario meterse con el directorio del sistema como /usr/share/vim/.
0 votos
La premisa de esta pregunta es incorrecta. Como desarrollador, no necesitas enfatizar escribir en los archivos que bloquea.