Perché SIP mi impedisce di usare 'dtruss' su un eseguibile al di fuori delle sue cartelle protette?

5

Sto cercando di eseguire il seguente comando su OS X El Capitan (10.11.4):

sudo dtruss /usr/local/bin/mix phoenix.server

Fallisce, dicendo:

dtrace: failed to execute /usr/local/bin/mix: dtrace cannot control executables signed with restricted entitlements

mix è un eseguibile che ho installato con Homebrew. /usr/local/bin/mix è in realtà un collegamento simbolico, ma punta a un file annidato in /usr/local/Cellar .

La dichiarazione ufficiale su SIP dice che /usr/local è scrivibile per gli installer (a differenza di /usr/ in generale) . Non dice se SIP consente di tracciare i programmi lì, ma dato che l'ho installato io stesso, sembra ragionevole poterlo rintracciare.

C'è qualcosa che posso fare per consentire di tracciare questo programma? Idee che ho:

  • Disabilita interamente SIP (sembra pesante)
  • Fai in modo che Homebrew installi tutto in una cartella in ~ (sembra disordinato)
  • Ignora Homebrew e compila mix dal sorgente in ~ , quindi sposta il nuovo eseguibile
    • Aggiornamento: stesso errore. Questo non ha alcun senso per me . SIP è disattivato, l'eseguibile non è "firmato" poiché l'ho compilato personalmente e non si trova in una posizione limitata. : P
  • Installa Linux in una VM. (seriamente? devo farlo?)
posta Nathan Long 29.04.2016 - 16:46
fonte

0 risposte

Leggi altre domande sui tag