Come capire cosa sta causando la proprietà di / usr / local per cambiare da my-username a root

13

Uso homebrew come gestore di pacchetti per determinate app di sviluppo web. Per mantenere aggiornato brew , eseguo update brew ogni due giorni e eseguo anche brew doctor . Di solito, questo va bene e brew mi dice che sono pronto per preparare.

Ogni tanto, tuttavia, ottengo il seguente errore:

Warning: /usr/local/etc isn't writable.

This can happen if you "sudo make install" software that isn't managed by by Homebrew. If a formula tries to write a file to this directory, the install will fail during the link step.

You should probably chown /usr/local/etc

Warning: The /usr/local directory is not writable. Even if this directory was writable when you installed Homebrew, other software may change permissions on this directory. Some versions of the "InstantOn" component of Airfoil are known to do this.

You should probably change the ownership and permissions of /usr/local back to your user account.

È abbastanza facile reimpostare le autorizzazioni sul mio nome utente. In seguito, brew sembra andare bene.

Ma cosa sta causando questo?

C'è un registro che mostra cosa sta causando il cambiamento delle autorizzazioni?

    
posta Daniel Muller 29.03.2015 - 14:29
fonte

6 risposte

4

Si è scoperto che Filewave è il colpevole. Filewave è un software di gestione del sistema utilizzato dalla nostra scuola per inviare aggiornamenti software. Grazie per l'input.

    
risposta data 29.09.2015 - 02:44
fonte
12

Ho avuto lo stesso identico problema, e risulta che l'aggiornamento automatico di Sophos era da incolpare. L'ho capito eseguendo: sudo fs_usage | grep "usr/local"

Ci è voluto un po 'di tempo, ma alla fine ho visto il daemon di installazione di Sophos chiamato "installazione" che scherza con le autorizzazioni di / usr / local.

Sto ancora cercando di capire un lavoro appropriato per questo comportamento.

EDIT: Credo che Sophos abbia risolto questo problema, vedere il link nei commenti di questa risposta. Sembra che sia stato risolto per me almeno!

    
risposta data 06.10.2015 - 17:10
fonte
2

Ho solo una vaga idea di come ottenere il ladro permesso. Questa non è una soluzione al tuo problema, ma più una sorta di soluzione alternativa.

Che ne dici di scrivere un cane da guardia in Automator o con Hazel (azioni della cartella) per guardare questa particolare cartella, ma invece di aggiungere una funzione come le immagini in scala basta usare uno shell script che esegue diversi comandi della shell:

  • Se la cartella viene modificata in qualsiasi modo, è sufficiente eseguire un'istantanea delle autorizzazioni e dell'ID processo attualmente in accesso con fuser <foldername> .
  • quindi si ricerca nella tabella di processo l'id di processo ( ps auxwwwwww | grep <process id> ) e infine
  • scrivi un'email a te stesso con queste informazioni raccolte.

Sfortunatamente non sono un sadhu di Automator, ma ho scoperto da Google che ci sono molte soluzioni per un problema simile.

    
risposta data 28.09.2015 - 12:50
fonte
0

Se utilizzi Time Machine, puoi trovare il tempo approssimativo in cui le autorizzazioni vengono modificate esplorando Backups.backupdb in Terminale. Utilizza ls -ld nelle cartelle con data e ora, ad es.

ls -ld /Volumes/Backup/Backups.backupdb/Mac/2015-12-25-120000/Macintosh\ HD/usr/local 

Quale mostrerà le informazioni sul proprietario e sul gruppo.

Una volta ottenuta la data in cui si è verificata la modifica, è possibile scoprire quali altre informazioni potrebbero essere state modificate sul sistema. Una tecnica semplice consiste nell'utilizzare il Finder File> Trova e aggiungere un criterio Last modified date . Altri buoni strumenti sono find e mdfind nel Terminale.

    
risposta data 13.01.2016 - 15:51
fonte
-1

Questo è un effetto collaterale dell'aggiornamento del tuo sistema; OS X probabilmente autorizza "riparazioni" su tutta la linea durante il processo di aggiornamento poiché / usr / local è annidato in una cartella di proprietà della radice.

    
risposta data 28.09.2015 - 16:49
fonte
-3

Hai usato Disk Utility seleziona Macintosh HD quindi esegui Verify Disk Permission e poi Repair Disk Permission se necessario, piuttosto che farlo manualmente?

Ora questo non dovrebbe risolvere il problema, ma è un buon punto di partenza noto per vedere quando home-brew modifica le autorizzazioni. Potrebbe rivelarsi il problema sottostante se sei fortunato.

Anche new update -v per un output più dettagliato, più i vecchi log sono qui ~/Library/Logs/Homebrew come per Dove si trova homebrew log?

    
risposta data 28.09.2015 - 11:13
fonte

Leggi altre domande sui tag