Permessi Homebrew e più utenti che hanno bisogno di preparare l'aggiornamento

79

Sto utilizzando Homebrew per gestire le installazioni di pacchetti su Lion (Lion Server in realtà, ma questo non dovrebbe importare) .

Homebrew è stato installato sotto un utente. Ora un utente diverso vorrebbe aggiungere un pacchetto e Homebrew non è felice:

$ brew update
fatal: Unable to create '/usr/local/.git/index.lock': Permission denied
Error: Failure while executing: git checkout -q master

È considerato negativo? Ho pensato che uno dei vantaggi dell'utilizzo di /usr/local/ per le installazioni era che non è necessario sudo . Ma chiaramente lo facciamo.

Tutti gli utenti che dovrebbero modificare Homebrew sono membri del gruppo admin . Quindi, potrei chmod -R g+w /usr/local/ , ma temo che questo possa biforcarsi qualcosa o creare problemi di sicurezza?!?

Consigli?

$ ls -al /usr/local/.git/
total 432
drwxr-xr-x  14 ladmin  admin     476 Feb 24 11:48 .
drwxrwxr-x  14 root    admin     476 Feb  9 15:27 ..
-rw-r--r--   1 ladmin  admin      94 Feb 24 11:48 FETCH_HEAD
-rw-r--r--   1 ladmin  admin      23 Feb 24 11:48 HEAD
-rw-r--r--   1 ladmin  admin      41 Feb  9 15:28 ORIG_HEAD
drwxr-xr-x   2 ladmin  admin      68 Feb  9 15:27 branches
-rw-r--r--   1 ladmin  admin     218 Feb  9 15:27 config
-rw-r--r--   1 ladmin  admin      73 Feb  9 15:27 description
drwxr-xr-x  12 ladmin  admin     408 Feb  9 15:27 hooks
-rw-r--r--   1 ladmin  admin  200272 Feb 24 11:48 index
drwxr-xr-x   3 ladmin  admin     102 Feb  9 15:27 info
drwxr-xr-x   4 ladmin  admin     136 Feb  9 15:27 logs
drwxr-xr-x   4 ladmin  admin     136 Feb  9 15:27 objects
drwxr-xr-x   5 ladmin  admin     170 Feb  9 15:27 refs
    
posta Meltemi 29.02.2012 - 21:17
fonte

5 risposte

98

Is this considered bad? I thought one of the advantages of using /usr/local/ for your installs was that you don't need sudo. But clearly we do.

Homebrew, per impostazione predefinita, si imposta per l'accesso per singolo utente a /usr/local . Quindi è necessario aprire le autorizzazioni sull'albero delle directory per poterle amministrare da più di una persona.

Le persone non devono eseguire sudo qui per amministrare homebrew. Hai solo bisogno di cambiare alcune autorizzazioni. Dal momento che hai già:

All users who would need to modify Homebrew are members of admin group.

Devi fare ancora due cose:

  1. Assicurati che tutto sotto /usr/local appartenga al gruppo admin ; e
  2. Assicurati che chiunque dal gruppo admin possa scrivere su qualsiasi cosa sotto /usr/local .

In questo caso le modifiche da apportare sono:

chgrp -R admin /usr/local
chmod -R g+w /usr/local
chgrp -R admin /Library/Caches/Homebrew
chmod -R g+w /Library/Caches/Homebrew

E ogni utente del gruppo admin dovrebbe essere in grado di gestire l'installazione homebrew sulla macchina. Se è necessario aggiungere un utente al gruppo admin, è possibile farlo in questo modo:

 dseditgroup -o edit -a <username> -t user admin

(l'utente dovrà accedere nuovamente per ottenere i privilegi).

Per la sanità mentale sulla macchina, puoi prendere in considerazione creare la tua forcella di Homebrew e avere il tuo punto di deposito git homebrew locale al fork locale. Ciò consente di personalizzare Homebrew per il proprio ambiente e controllare le versioni dei pacchetti che le persone sono in grado di installare con il comando brew . Con più persone che eseguono installazioni, potresti eseguire problemi di versione o di dipendenza.

    
risposta data 21.03.2012 - 20:24
fonte
7

È possibile abilitare le autorizzazioni homebrew per più di un utente tramite il gruppo admin o tramite qualsiasi altro gruppo di utenti. Ecco una ricetta leggermente espansa per configurare questo:

Il gruppo deve amministrare la directory di installazione homebrew locale. Assegna quindi / usr / local al gruppo admin (o al tuo gruppo preferito) e attiva le autorizzazioni di scrittura di gruppo:

chgrp -R admin /usr/local
chmod -R g+w /usr/local

Il gruppo ha anche bisogno di autorizzazioni per la cache locale di homebrew delle formule e dei file sorgente in / Library / Caches / Homebrew :

chgrp -R admin /Library/Caches/Homebrew
chmod -R g+w /Library/Caches/Homebrew

Se riscontri ulteriori problemi di autorizzazione simili durante l'utilizzo di homebrew da più account, prendi nota del percorso incriminato e considera di provare lo stesso approccio.

Leif Hanack ha bloggato una soluzione simile , dove crea e configura un gruppo di utenti dedicato brew per lo scopo.

- Aggiornamento 2015-08-20

Recentemente ho usato di nuovo questa risposta per impostare un account ospite con accesso homebrew. Per poter utilizzare Cask dal secondo account amministratore ho dovuto eseguire anche i seguenti comandi:

chgrp -R admin /opt/homebrew-cask
chmod -R g+w /opt/homebrew-cask
    
risposta data 09.10.2013 - 03:39
fonte
4

Stavo per commentare la risposta accettata (ma non ne ho ancora la reputazione).

Come utente di Caskroom.io , vorrei anche aggiungere:

sudo chown -R admin /opt/homebrew-cask
sudo chmod -R g+w /opt/homebrew-cask
sudo chmod -R g+w  /Library/Caches/Homebrew/

dal momento che cask, un'estensione estremamente utile per l'homebrew, mette tutti i suoi file in /opt/homebrew-cask

    
risposta data 16.08.2015 - 23:44
fonte
1

Devi dare il permesso al percorso. eseguilo in linea di comando e andrà tutto bene. Ha funzionato per me:

sudo chown -R $ USER / usr / local

    
risposta data 09.07.2015 - 04:08
fonte
0

Voterò per impostare il permesso del gruppo - e per me sembra che sia solo per quello che è lì e non dovrebbe creare un problema di sicurezza.

  • Non usare sudo.

tl;dr Sudo is dangerous, and you installed TextMate.app without sudo anyway.

Homebrew is designed to work without using sudo. You can decide to use it but we strongly recommend not to do so. If you have used sudo and run into a bug then it is likely to be the cause. Please don’t file a bug report unless you can reproduce it after reinstalling Homebrew from scratch without using sudo.

    
risposta data 29.02.2012 - 21:36
fonte

Leggi altre domande sui tag