Разрешить нескольким пользователям устанавливать программное обеспечение с помощью 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

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
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.