Permettre à plusieurs utilisateurs d'installer des logiciels à l'aide de homebrew

13

J'ai installé homebrew en utilisant mon autre compte utilisateur (que j'utilise pendant le travail), mais il est impossible d'installer des logiciels à partir de mon compte personnel nouvellement créé:

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

Un ls -dl /usr/local/Cellar/indique que le répertoire appartient à mon autre compte utilisateur.

Comment configurer homebrew pour permettre à plusieurs utilisateurs d'installer des logiciels?

Sridhar Ratnakumar
la source
Vous pouvez prendre le contrôle de l'autre utilisateur en faisantsudo chown -R $(whoami) /usr/local
Nathan Lloyd

Réponses:

13

défini umaskpour chaque utilisateur en premier. (.basrc ou .profile ou .bash_profile)

umask 0002 # group write permission

puis donnez l'autorisation d'écriture pour les groupes via /usr/localrécursivement:

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

puis changez le propriétaire en staff

sudo chgrp -R staff /usr/local

maintenant, chaque utilisateur, qui est dans le staffgroupe peut utiliser brew installet d'autres opérations liées au brassage ... La plupart du temps, chaque utilisateur fait partie de ce groupe.

vigo
la source
1
J'ai dû faire la même chose pour / Library / Caches / Homebrew pour que cela fonctionne réellement. Et comme tous mes utilisateurs ont activé l' accès administrateur, j'ai sauté lechgrp
Duvrai
1

Sur le wiki homebrew, il mentionne que vous pouvez l'installer n'importe où, essayez d'avoir des installations locales pour chaque utilisateur.

MatthewFord
la source
Je ne veux pas ça, en fait. Je veux que le logiciel aille dans un lieu commun, peu importe qui l'a installé.
Sridhar Ratnakumar
J'ai essayé cela et j'aurais aimé ne pas l'avoir vu que vous vous trompez sur les autorisations des utilisateurs
MatthewFord
1

Si votre compte dispose d'un accès root / su/ sudo, vous pouvez essayer la solution de contournement suivante:

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

sudo alternative:

sudo -u myother_user_account brew install ...

Un alias de shell pratique (pour .bashrc/ .zshrc/ ...):

alias brew="sudo -u myother_user_account brew"
Sridhar Ratnakumar
la source
1
Ce n'est pas une solution recommandée au problème multi-utilisateurs. Il nécessite que les utilisateurs puissent avoir un accès root et / ou un accès direct pour exécuter des commandes en tant qu'autre utilisateur, ce qui va à l'encontre du but d'avoir des privilèges de niveau utilisateur en premier lieu. Vous pouvez casser le modèle pour votre propre cas d'utilisation étant donné que vous possédez la boîte et les deux comptes, mais il serait mal avisé pour quiconque d'utiliser cela et votre propre utilisation du système serait plus sûre pour utiliser les séparations de privilèges appropriées.
Caleb
Je ne suis pas d'accord pour dire que ce n'est "pas recommandé". Il s'agit d'une solution qui nécessite que l'autre utilisateur ait un accès root / sudo. Et si cela se produit dans votre cas spécifique, je le recommanderais totalement. J'ai essayé d'autres façons de gérer les autorisations Homebrew et ce fut un cauchemar. Une permission sans fin a nié les erreurs, bien que je jure que j'ai tout fait comme "recommandé".
cubuspl42