Il Sudo non può creare il file in / usr / bin in El Capitan


14

Sono passato a El Capitan ieri e tutto è andato bene fino a poco tempo fa quando ho notato che non posso scrivere nulla (con sudo ofc) su / usr / bin mentre provavo a installare phpbrew.

Cosa potrebbe causare questo e come risolverlo?

inserisci qui la descrizione dell'immagine


OS X El Capitan è senza root. La funzione può essere disabilitata dalla partizione di ripristino.
fd0,

Risposte:


17

Da OSX 10.11, Apple ha rafforzato il sistema di sicurezza. Chiamata System Integrity Protection , Apple blocca:

/System
/sbin
/usr (with the exception of /usr/local subdirectory)

Per disabilitare questa funzione di sicurezza devi riavviare il computer e tenerlo premuto CMD+Rall'avvio per avviare la modalità di ripristino di OS X.

Poi OS X Utilities > Terminal

Digita il comando csrutil disable; reboot

Il tuo computer si riavvierà. Vedrai un messaggio di conferma sulla disattivazione.

Per verificare lo stato del tipo CRS csrutil status


1
Ho disabilitato e ancora non mi permette di fare nulla:/Users/Rob$ csrutil status System Integrity Protection status: disabled. /Users/Rob$ touch /usr/bin/yes touch: /usr/bin/yes: Permission denied
Roberto

Prova con sudo.
Ragnar,

Nella maggior parte dei casi, è meglio installare personalizzazioni locali in / usr / local (ad esempio / usr / local / bin anziché / bin o / usr / bin). Questo è quello che serve, e questo è stato il caso per molto tempo. Se possibile, consiglierei di seguire questa best practice piuttosto che disabilitare SIP. Se è davvero necessario apportare modifiche in una posizione riservata, è meglio disabilitare SIP, apportare la modifica e quindi riattivare immediatamente SIP con csrutil enable(in modalità di ripristino).
Gordon Davisson,

3

Come menzionato da Ragnar , la /usrdirectory è bloccata dal sistema, ad eccezione di /usr/local. Quindi, se il tuo scenario lo consente, ti consiglio di aggiungere il link simbolico a /usr/local/bin. Se non si ha un requisito rigoroso sull'uso /usr/bin, questo è un modo per aggirare l'errore "Operazione non consentita".


2

Si può verificare se un determinato file o directory è limitato da System Integrity Protection (SIP) / Rootless di OSX elencando i flag di file usando l' -Oopzione a ls (ad es. Per vedere quali directory sono / sono limitate):

ls -Ol /

Le directory o i file controllati da SIP vengono visualizzati come "limitati".

Ci sono tutti i dettagli nelle risposte a questa domanda su SIP / rootless.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.