Jeg prøver å flytte noe til / usr / bin på OS X El Capitan. Jeg har deaktivert rootless ved hjelp av følgende kommandoer: sudo nvram boot-args="rootless=0"; sudo reboot
, men jeg får stadig den samme feilen:
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
Nvm. For alle andre som har dette problemet, må du starte Mac-en på nytt og trykke ⌘ + R når du starter opp. Gå deretter inn i Utilities > Terminal og skriv inn følgende kommandoer:
csrutil disable
reboot
Dette er et resultat av System Integrity Protection. Mer informasjon her.
EDIT
Hvis du vet hva du gjør og er vant til å kjøre Linux, bør du bruke løsningen ovenfor, da mange av SIP-begrensningene er en fullstendig smerte i ræva.
Men hvis du er en tinkerer/noob/"poweruser" og ikke vet hva du gjør, kan dette være veldig farlig, og det er bedre å bruke svaret nedenfor.
Riktig løsning er å kopiere eller installere til /usr/local/bin
, ikke /usr/bin
. Dette skyldes System Integrity Protection (SIP). SIP gjør /usr/bin
skrivebeskyttet, men lar /usr/local
være skrivebeskyttet.
SIP bør ikke deaktiveres som angitt i svaret ovenfor fordi det legger til et ekstra lag med beskyttelse mot skadelig programvare som får root-tilgang. Her er en fullstendig forklaring på hva SIP gjør og hvorfor det er nyttig.
Som foreslått i dette svaret bør man ikke deaktivere SIP (rotløs modus) "Det anbefales ikke å deaktivere rotløs modus! Den beste praksisen er å installere egendefinerte ting til "/usr/local" bare " **.
Hvis du ønsker å ta kontroll over /usr/bin/
Du må starte systemet på nytt:
Rett etter oppstartslyden, hold nede Kommando-R for å starte opp i gjenopprettingssystemet
Klikk på Verktøy-menyen og velg Terminal
Skriv csrutil deaktivere og trykk retur
Klikk på menyen og velg Restart
Når du har bekreftet endringene, må du sørge for å aktivere SIP på nytt! Det gjør mye for å beskytte systemet ditt. (Samme trinn som ovenfor bortsett fra at du skriver: csrutil enable)