Impossibile scrivere su / usr anche con sudo


10

Ecco il mio problema:

sudo php -d detect_unicode=0 go-pear.phar

... dovrei lasciarmi eseguire come root e modificare /usre /usr/sharedirectory, ma ottengo questo:

Below is a suggested file layout for your new PEAR installation.  To
change individual locations, type the number in front of the
directory.  Type 'all' to change all of them or simply press Enter to
accept these locations.

 1. Installation base ($prefix)                   : /usr
 2. Temporary directory for processing            : /tmp/pear/install
 3. Temporary directory for downloads             : /tmp/pear/install
 4. Binaries directory                            : /usr/bin
 5. PHP code directory ($php_dir)                 : /usr/share/pear
 6. Documentation directory                       : /usr/docs
 7. Data directory                                : /usr/data
 8. User-modifiable configuration files directory : /usr/cfg
 9. Public Web Files directory                    : /usr/www
10. System manual pages directory                 : /usr/man
11. Tests directory                               : /usr/tests
12. Name of configuration file                    : /private/etc/pear.conf

1-12, 'all' or Enter to continue: 
Unable to create PHP code directory ($php_dir) /usr/share/pear.
Run this script as root or pick another location.

Perché sudonon riesco a darmi il privilegio di root? * Nota: * Sono nel gruppo delle ruote, anche se questo non dovrebbe avere nulla con questo sudocomportamento divertente .

Gabbar-Singh:~ anadi$ id anadi
uid=XXX(anadi) gid=XX(staff) groups=XX(staff),0(wheel)

Risposte:


15

Stai tentando di installare in /usrcui è protetto da SIP (System Integrity Protection), una funzionalità introdotta con 10.11 (vedi Qual è la funzione "rootless" in El Capitan, davvero? Per i dettagli).

Utilizzare /usr/localinvece, che è la posizione prevista per le installazioni lato utente.


sì tranne che ho bisogno di creare un collegamento a / usr / include o non riesco a compilare con gcc 4.9!
Michael,

Dovrai disabilitare SIP quindi suppongo.
jasonology il

Vecchia risposta, ma perché non puoi semplicemente dire a GCC dove trovare i file include? Ecco a cosa serve l'opzione '-l'. PHP come root ... <shudder>
Marc Wilson,
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.