Installazione di homebrew dopo l'aggiornamento a MacOS High Sierra

3

Recentemente ho aggiornato a MacOS High Sierra (10.13.4). Dopo l'aggiornamento il mio homebrew sembra aver smesso di funzionare. Così ho disinstallato l'homebrew eseguendo il comando di sotto

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"

Ho provato ad installare di nuovo homebrew eseguendo il comando di sotto

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Ma l'installazione non è riuscita con l'errore come discusso qui .

Quindi ho provato ad eseguire il comando come suggerito nel problema precedente.

sudo chown -R $USER:admin /usr/local

Ma non ha funzionato a causa del problema discusso qui .

Ho eseguito il comando seguente come suggerito sopra

sudo chown -R $(whoami) $(brew --prefix)/*

Mi ha dato alcuni avvisi di Operation not permitted .

Poi ho provato di nuovo ad installare homebrew. Ora mi mostra i seguenti registri nella console

...
==> Installation successful!

==> Homebrew has enabled anonymous aggregate user behaviour analytics.
Read the analytics documentation (and how to opt-out) here:
  https://docs.brew.sh/Analytics.html

==> Next steps:
- Run 'brew help' to get started
- Further documentation:
    https://docs.brew.sh
sudo: /etc/sudoers is owned by uid 504, should be 0
sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin 

Qualcuno può farmi sapere che cosa indica l'ultima serie di avvertimenti / errori? Possono essere ignorati?

    
posta tuk 15.05.2018 - 13:58
fonte

1 risposta

1

L'avvertimento alla fine ti sta dicendo che l'utente root (indicato per default con% uid% co_de) non possiede più il file 0 . Questo non va bene. Ad un certo punto potresti averlo cambiato accidentalmente, magari digitando un comando in modo errato. Il file /etc/sudoers indica quali utenti e gruppi possono eseguire l'escalation a un set di privilegi di root eseguendo un comando con sudoers e digitando la loro password di accesso.

Il comando sudo che hai utilizzato sopra modifica la proprietà dei file da un utente e / o gruppo a un altro. Poiché hai modificato la proprietà del file chown , probabilmente non sarai in grado di sudoers di uscire dai guai dato che il comando sudo non verrà eseguito per motivi di sicurezza se il file sudo da cui disegna la sua configurazione è di proprietà di un utente diverso da sudoers (questo è il motivo per cui homebrew sta sputando l'ultimo messaggio di errore sopra).

Suggerirei quanto segue:

  1. Abilita l'utente root utilizzando le istruzioni di Apple qui (nella sezione 'Abilita o disabilita l'utente root') .
  2. Apri Terminale e passa all'utente root digitando root e inserendo la password che hai assegnato al tuo account utente root nel passaggio 1.
  3. Come utente root, modifica la proprietà del file su - su root e il gruppo wheel con quanto segue:

    chown root:wheel /etc/passwd
    
  4. Segui di nuovo le istruzioni nel passaggio 1 ma questa volta disabilita l'utente root di nuovo.

Ora dovresti essere in grado di utilizzare nuovamente il comando sudoers con il tuo normale utente amministratore. Puoi eseguire sudo per esempio in una nuova shell; se il contenuto della directory corrente è elencato e non vedi questo errore di proprietà sopra allora tutto va bene.

Sebbene ciò non rientri nei limiti della tua domanda, temo che se hai involontariamente cambiato la proprietà del file sudo ls mentre tenti di cambiare la proprietà di sudoers , potresti averlo fatto ad altri file importanti come bene. Esegui /usr/local/ ed esamina l'output di quel comando. La terza colonna in da sinistra mostra l'utente che possiede un determinato file. Per impostazione predefinita, praticamente tutti i file nella directory ls -l /etc/ devono essere di proprietà di root (uno ovvio è /etc/ ). Se vedi che la maggioranza è di proprietà di un altro utente (ad esempio il tuo nome utente), il problema è molto più esteso del tuo file /etc/passwd .

Come punto generale, devi fare molta attenzione a eseguire qualsiasi comando preceduto da sudoers . Esegui solo comandi nel tuo terminale se capisci il comando e sai esattamente cosa farà quando passerai un determinato set di opzioni / argomenti. Esistono alcune misure di sicurezza fornite dai più recenti sistemi operativi Mac con System Integrity Protection (SIP) ma è ancora possibile procedere un sacco di devastazione sul tuo sistema.

Se vuoi sapere che cosa fa un particolare comando e i suoi vari argomenti, prova a controllare prima il manuale digitando sudo + il comando su cui desideri informazioni ( man o man sudo per esempio).

    
risposta data 16.05.2018 - 02:09
fonte

Leggi altre domande sui tag