Homebrew Permissions для Watchman на многопользовательском Mac - PullRequest
0 голосов
/ 04 мая 2019

У меня на Macbook Pro два пользователя, работающие с macOD Mojave 10.14.2 - один для работы и один для личного.

Я установил React Native для обоих пользователей, установив реактивную систему cli & watchman

brew install watchman

sudo npm install -g react-native-cli

Это сработало, и я смог запустить локальный сервер с npm start

Я пытался сделать то же самое для другого пользователя, но не смог установить сторож с homebrew из-за проблем с разрешениями.

Я запустил следующее

sudo chown -R $(whoami):admin $(brew --prefix)/*

И это исправило. Я снова смог запустить локальный сервер разработки.


За исключением случаев, когда я вернулся к другому пользователю, я не смог снова запустить сервер.

Я получаю следующую ошибку при запуске npm start

Loading dependency graph...libc++abi.dylib: terminating with uncaught exception of type std::__1::system_error: open: /usr/local/var/run/watchman/yev-state: Permission denied

Watchman: watchman --no-pretty get-sockname returned with exit code=null, signal=SIGABRT, stderr= libc++abi.dylib: terminating with uncaught exception of type std::__1::system_error: open: /usr/local/var/run/watchman/yev-state: Permission denied

Я попытался запустить sudo chown -R $(whoami):admin $(brew --prefix)/* снова, но на этот раз это не помогло.

Я также посмотрел, как настроить Homebrew для многопользовательских Mac, и нашел эту короткую статью

Я создал группу пользователей под названием «brew», добавил в нее как своих рабочих, так и личных пользователей, и запустил следующее:

sudo chgrp -R brew $(brew --prefix)/*

sudo chmod -R g+w $(brew --prefix)/*

Все еще нет игры в кости.

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

1 Ответ

1 голос
/ 04 мая 2019

Каталог /usr/local/var/run/watchman должен иметь разрешения 2777, чтобы любой пользователь мог создать свой собственный каталог состояний внутри:

sudo chmod 2777 /usr/local/var/run/watchman

Кроме того, сторож выполняет некоторые проверки работоспособности, чтобы определить, существует ли каталог состоянийпохоже, что он может иметь компрометирующие разрешения;Я подозреваю, что ваши очень широкие рекурсивные вызовы chmod и chown вызывают это, поэтому я рекомендую это как очень безопасную, хотя и разрушительную вещь, если предположить, что у других пользователей есть работающий сторож:

sudo rm -rf /usr/local/var/run/watchman/*
...