Как я могу запустить brew от имени пользователя root? - PullRequest
0 голосов
/ 02 декабря 2018

Я знаю, что это часто задаваемый вопрос, но я действительно изо всех сил.

Я недавно пытался установить MySQL с Homebrew на мой Mac OS El-Capitan.Тем не менее, я столкнулся с некоторыми проблемами, и я хочу переустановить его.Тем не менее, всякий раз, когда я пытаюсь сделать это, это дает мне:

Error: Permission denied @ rb_sysopen - /usr/local/var/homebrew/locks/mysql.formula.lock

Я пытался обойти эту ошибку, просто сортируя именованные файлы вручную в корневой учетной записи, но файлов было слишком много.

Итак, я попытался удалить его с помощью root, но он выдал ошибку:

Error: Running Homebrew as root is extremely dangerous and no longer supported.
As Homebrew does not drop privileges on installation you would be giving all
build scripts full access to your system.

Я просмотрел много статей, включая эту ссылку !Многие из них предложили, чтобы я прикрепил папку / usr / local непосредственно к своей учетной записи пользователя root, чтобы я мог запускать brew без проблем с правами, но это слишком опасно.

Я пытался запустить:

sudo chown root /usr/local/bin/brew

Но это тоже не сработало.

Есть ли способы обойти эту ошибку и запустить brew от имени root?

Ответы [ 2 ]

0 голосов
/ 09 июня 2019

Использование brew в качестве root - плохая идея из соображений безопасности.Вместо этого вы можете изменить владельца файла brew на текущего вошедшего в систему пользователя.Введите эту единственную команду:

sudo chown $USER /usr/local/bin/brew
0 голосов
/ 06 декабря 2018

Многие из них предложили, чтобы я прикрепил папку / 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.

Очень стоит научиться работать с минимальным количеством разрешений.

...