Многие из них предложили, чтобы я прикрепил папку / usr / local непосредственно к своей учетной записи пользователя root, чтобы я мог запускать brew без каких-либо проблем с разрешениями, но это слишком опасно.
chown
использование всего /usr/local/
, вероятно, является плохой идеей, поскольку она не полностью находится под контролем Homebrew.Но просто /usr/local/var/homebrew/locks/mysql.formula.lock
должно быть в порядке.
chown $USER /usr/local/var/homebrew/locks/mysql.formula.lock
И следуйте советам brew doctor
.
попытался запустить: sudo chown root /usr/local/bin/brew
Но это также не сработало.
Все это было сделано для того, чтобы сделать файл /usr/local/bin/brew
владельцем root.Это не заставляет его работать от имени пользователя root.Вы должны вернуть его обратно в собственность своего пользователя, иначе вы не сможете обновить brew.
Чтобы запустить его от имени пользователя root, вы должны использовать setuid . Не делайте этого. Это по своей природе опасно, и вдвойне с вашим текущим пониманием разрешений.Ничего личного, разрешения требуют времени, чтобы привыкнуть и оценить.
Homebrew не запускается с правами root, чтобы ограничить ущерб, возможный из-за вредоносного пакета или простой ошибки.Работая от имени вашего пользователя, он может повредить только то, что доступно вашему пользователю.Это защищает от важных вещей, таких как системные файлы.Это цель системы разрешений Unix: ограничить возможный ущерб.Если вы запускаете brew
от имени пользователя root, все ставки отключены.
Кроме того, если /usr/local/var/homebrew/locks/mysql.formula.lock
принадлежит пользователю root, это означает, что MySQL запускается от имени пользователя root.Если вы запускаете MySQL от имени root и он скомпрометирован, ваша система будет скомпрометирована.Если вы запускаете MySQL как пользователь или специальный пользователь с ограниченными правами mysql, только ваши пользовательские файлы или собственные файлы mysql могут быть скомпрометированы.Запустите его, как это запрещено homebrew.
Очень стоит научиться работать с минимальным количеством разрешений.