Estou tentando mover algo para / usr / bin no OS X El Capitan. Desativei o rootless usando os seguintes comandos:, sudo nvram boot-args="rootless=0"; sudo reboot
mas continuo recebendo o mesmo erro:
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
fonte
fonte
Respostas:
Nvm. Para qualquer outra pessoa com esse problema, é necessário reiniciar o seu Mac e pressionar ⌘ + R ao inicializar. Em seguida, vá em Utilitários> Terminal e digite os seguintes comandos:
Isso é resultado da Proteção da integridade do sistema. Mais informações aqui .
EDITAR
Se você sabe o que está fazendo e está acostumado a executar o Linux, deve usar a solução acima, pois muitas das restrições do SIP são um problema total.
No entanto, se você é um tinkerer / noob / "poweruser" e não sabe o que está fazendo, isso pode ser muito perigoso e é melhor usar a resposta abaixo .
fonte
csrutil enable; reboot
. Infelizmente, o comando não funciona no modo normal.A solução correta é copiar ou instalar para
/usr/local/bin
não/usr/bin
. Isso ocorre devido à proteção de integridade do sistema (SIP) . O SIP faz/usr/bin
somente leitura, mas sai/usr/local
como leitura e gravação.O SIP não deve ser desativado, conforme indicado na resposta acima, porque adiciona outra camada de proteção contra malware que obtém acesso root. Aqui está uma explicação completa do que o SIP faz e por que é útil.
Conforme sugerido nesta resposta , não se deve desativar o SIP (modo sem raiz) "Não é recomendado desativar o modo sem raiz! A melhor prática é instalar itens personalizados apenas em" / usr / local "."
fonte
java
para/usr/local/bin/java
nos meus aliases bashrc, depois que eu fiz no link apropriado nessa pasta como esta resposta sugere.rm
nada/usr/bin/
? Entendo que o SIP tem seu objetivo, mas quero remover um executável específico./usr/local/bin
no meu caminho e o openssl 1.0.2n está vinculado corretamente,/usr/local/bin/openssl
mas toda vez que o faço,which openssl
ele ainda mostra/usr/bin/openssl
qual é aOpenSSL 0.9.8zh 14 Jan 2016
versão mais antiga. Como faço para o meu sistema preferir/usr/local/bin/openssl
um ao outro?Se você deseja assumir o controle de
/usr/bin/
Você precisará reiniciar o seu sistema:
Logo após o som de inicialização, mantenha pressionada a tecla Command-R para inicializar no sistema de recuperação
Clique no menu Utilitários e selecione Terminal
Digite csrutil disable e pressione return
Clique no menu and e selecione Reiniciar
Depois de confirmar suas alterações, reative o SIP! Isso faz muito para proteger seu sistema. (As mesmas etapas acima, exceto o tipo: csrutil enable)
fonte
Se depois de chamar "csrutil desabilitado" ainda seu comando não funcionar, tente com "sudo" no terminal, por exemplo:
E deve funcionar.
fonte