Разрешить нескольким пользователям устанавливать программное обеспечение с помощью homebrew

13

Я установил homebrew, используя другую учетную запись пользователя (которую я использую во время работы), но невозможно установить программное обеспечение из моей только что созданной личной учетной записи:

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

A ls -dl /usr/local/Cellar/показывает, что каталог принадлежит моей другой учетной записи пользователя.

Как настроить homebrew, чтобы позволить нескольким пользователям устанавливать программное обеспечение?

Шридхар Ратнакумар
источник
Вы можете взять на себя управление от другого пользователя, выполнивsudo chown -R $(whoami) /usr/local
Натан Ллойд

Ответы:

13

установить umaskдля каждого пользователя первым. (.basrc или .profile или .bash_profile)

umask 0002 # group write permission

затем дать разрешение на запись для групп через /usr/localрекурсивно:

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

затем смените владельца на staff

sudo chgrp -R staff /usr/local

теперь каждый пользователь, который входит в staffгруппу, может использовать brew installи другие операции, связанные с варкой ... В основном, каждый пользователь находится в этой группе.

виго
источник
1
Я должен был сделать то же самое для / Library / Caches / Homebrew, чтобы это действительно работало. И так как все мои пользователи имеют доступ с chgrp
правами
1

В доморощенной вики упоминается, что вы можете установить ее в любом месте, попробуйте локальные установки для каждого пользователя.

MatthewFord
источник
Я не хочу этого, на самом деле. Я хочу, чтобы программное обеспечение отправлялось в обычное место независимо от того, кто его установил.
Шридхар Ратнакумар
Я пробовал это, и жаль, что у меня не было, поскольку вы получаете испорченные права пользователя
MatthewFord
1

Если ваша учетная запись имеет root / su/ sudoдоступ, вы можете попробовать следующий обходной путь:

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

sudo альтернатива:

sudo -u myother_user_account brew install ...

Удобный псевдоним оболочки (для .bashrc/ .zshrc/ ...):

alias brew="sudo -u myother_user_account brew"
Шридхар Ратнакумар
источник
1
Это не рекомендуемое решение проблемы нескольких пользователей. Это требует, чтобы пользователи были в состоянии иметь root-доступ и / или прямой доступ для запуска команд от имени другого пользователя, что в первую очередь противоречит цели иметь привилегии уровня пользователя. Вы можете нарушить модель для своего собственного варианта использования, если у вас есть ящик и обе учетные записи, но кому-либо другому будет не рекомендуется использовать это, и использование вашей собственной системы будет более безопасным для использования правильного разделения привилегий.
Калеб
Я не согласен, что это "не рекомендуется". Это решение, которое требует, чтобы другой пользователь имел права root / sudo. И если это произойдет в вашем конкретном случае, я бы полностью порекомендовал это. Я пробовал другие способы управления разрешениями для Homebrew, и это был кошмар. В бесконечном разрешении отказано в ошибках, хотя я клянусь, что сделал все как «рекомендовано».
cubuspl42