Permitir que vários usuários instalem software usando homebrew

13

Instalei o homebrew usando minha outra conta de usuário (que uso durante o trabalho), mas é impossível instalar o software da minha conta pessoal recém-criada:

$ brew install unrar
Error: Cannot write to /usr/local/Cellar

A ls -dl /usr/local/Cellar/mostra que o diretório pertence à minha outra conta de usuário.

Como configurar o homebrew para permitir que vários usuários instalem software?

Sridhar Ratnakumar
fonte
Você pode assumir o controle do outro usuário fazendosudo chown -R $(whoami) /usr/local
Nathan Lloyd

Respostas:

13

definido umaskpara cada usuário primeiro. (.basrc ou .profile ou .bash_profile)

umask 0002 # group write permission

conceda permissão de gravação para grupos via /usr/localrecursivamente:

sudo chmod -R g+w /usr/local/

mude o proprietário para staff

sudo chgrp -R staff /usr/local

agora, cada usuário que está no staffgrupo pode usar brew installe outras operações relacionadas à distribuição ... Principalmente, todo usuário está nesse grupo.

vigo
fonte
1
Eu tive que fazer o mesmo com / Library / Caches / Homebrew para fazer isso realmente funcionar. E como todos os meus usuários têm o Acesso de administrador ativado, pulei ochgrp
Duvrai
1

No wiki do homebrew, ele menciona que você pode instalá-lo em qualquer lugar, tente ter instalações locais para cada usuário.

MatthewFord
fonte
Eu não quero isso, na verdade. Quero que o software vá para um local comum, independentemente de quem o instalou.
Sridhar Ratnakumar
Eu tentei isso e desejo que eu não tinha como você ficar confuso permissões de usuário
MatthewFord
1

Caso sua conta tenha acesso root / su/ sudo, você pode tentar a seguinte solução alternativa:

su - myother_user_account -c "brew install ..."

sudo alternativo:

sudo -u myother_user_account brew install ...

Um prático apelido de shell (para .bashrc/ .zshrc/ ...):

alias brew="sudo -u myother_user_account brew"
Sridhar Ratnakumar
fonte
1
Esta não é uma solução recomendada para o problema de vários usuários. Ele exige que os usuários possam ter acesso root e / ou acesso direto para executar comandos como outro usuário, o que meio que anula o propósito de ter privilégios no nível do usuário. É possível quebrar o modelo para seu próprio caso de uso, desde que você possua a caixa e as duas contas, mas seria desaconselhável que outras pessoas o usassem e o uso do seu próprio sistema seria mais seguro ao usar separações de privilégios adequadas.
Caleb
Não concordo que isso "não seja recomendado". Esta é uma solução que requer que o outro usuário tenha acesso root / sudo. E se isso acontecer no seu caso específico, eu recomendaria isso totalmente. Tentei outras maneiras de gerenciar permissões do Homebrew e foi um pesadelo. A permissão interminável negou erros, apesar de eu jurar que fiz tudo como "recomendado".
cubuspl42