Estoy tratando de mover algo a / usr / bin en OS X El Capitan. He deshabilitado rootless usando los siguientes comandos: sudo nvram boot-args="rootless=0"; sudo reboot
pero sigo recibiendo el mismo error:
MacBook-Air:~ Mark$ sudo cp class-dump /usr/bin
Password:
cp: /usr/bin/class-dump: Operation not permitted
MacBook-Air:~ Mark$ sudo mv class-dump /usr/bin
mv: rename class-dump to /usr/bin/class-dump: Operation not permitted
macos
osx-elcapitan
Mark Bourke
fuente
fuente
Respuestas:
Nvm. Para cualquier otra persona que tenga este problema, debe reiniciar su Mac y presionar ⌘ + R al arrancar. Luego vaya a Utilidades> Terminal y escriba los siguientes comandos:
Este es el resultado de la Protección de integridad del sistema. Más información aquí .
EDITAR
Si sabe lo que está haciendo y está acostumbrado a ejecutar Linux, debe usar la solución anterior, ya que muchas de las restricciones SIP son un completo problema.
Sin embargo, si eres un manipulador / novato / "usuario avanzado" y no sabes lo que estás haciendo, esto puede ser muy peligroso y es mejor que uses la respuesta a continuación .
fuente
csrutil enable; reboot
. El comando no funciona en el modo normal, lamentablemente.La solución correcta es copiar o instalar para
/usr/local/bin
no/usr/bin
. Esto se debe a la Protección de integridad del sistema (SIP) . SIP hace/usr/bin
solo lectura pero deja/usr/local
como lectura-escritura.SIP no debe deshabilitarse como se indica en la respuesta anterior porque agrega otra capa de protección contra el malware que obtiene acceso a la raíz. Aquí hay una explicación completa de lo que hace SIP y por qué es útil.
Como se sugiere en esta respuesta, uno no debe deshabilitar SIP (modo sin raíz) "¡No se recomienda deshabilitar el modo sin raíz! La mejor práctica es instalar cosas personalizadas en" / usr / local "solamente".
fuente
java
que/usr/local/bin/java
en mis alias bashrc, después de que hice el enlace correspondiente en esa carpeta como sugiere esta respuesta.rm
nada/usr/bin/
? Entiendo que SIP tiene su propósito, pero quiero eliminar un ejecutable específico./usr/local/bin
en mi camino y openssl 1.0.2n está correctamente enlazado,/usr/local/bin/openssl
pero cada vez que lo hagowhich openssl
, todavía muestra/usr/bin/openssl
cuál es laOpenSSL 0.9.8zh 14 Jan 2016
versión anterior . ¿Cómo hago para que mi sistema prefiera el/usr/local/bin/openssl
uno sobre el otro?Si quieres tomar el control de
/usr/bin/
Deberá reiniciar su sistema:
Justo después del sonido de arranque, mantenga presionada la tecla Comando-R para arrancar en el Sistema de recuperación
Haga clic en el menú Utilidades y seleccione Terminal
Escriba csrutil disable y presione Intro
Haz clic en el menú y selecciona Reiniciar
Una vez que haya confirmado sus cambios, asegúrese de volver a habilitar SIP. Hace mucho para proteger su sistema. (Los mismos pasos que el anterior, excepto el tipo: csrutil enable)
fuente
Si después de llamar a "csrutil disabled" aún su comando no funciona, intente con "sudo" en la terminal, por ejemplo:
Y debería funcionar.
fuente