1

В Ubuntu, когда я сталкиваюсь с ошибкой прав доступа, я просто запускаю команду, так как sudo обычно работает. Не тот случай в OSX:

$ ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"
 From https://github.com/Homebrew/homebrew
 * [new branch]      master     -> origin/master
error: unable to unlink old 'Library/Aliases/0mq' (Permission denied)

как sudo:

$ sudo ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"
-e:69: warning: Insecure world writable dir /usr/local in PATH, mode 040777
Don't run this as root!

Не уверен, что я должен делать. Я сталкиваюсь с подобными вещами все время, и хотя я могу sudo chown соответствующие каталоги, я буду делать это все время.

Я также не могу sudo brew install поскольку brew «трусливо отказывается» работать как суперпользователь. Я просто сбит с толку, потому что чувствую, что пытаюсь сделать что-то глупое, и все же Ubuntu, эквивалентный этому, sudo apt-get install считается правильным способом установки новых приложений?

Я также мог бы создать нового пользователя, который на самом деле является суперпользователем, и устанавливать все как он, но Ubuntu не позволяет вам сделать это, так как это плохая идея, и я согласен, что пользователь с ограниченными возможностями и sudoing только тогда, когда это необходимо, выглядит как гораздо лучшая идея

1 ответ1

1

/usr/local/ не должен быть доступен для записи во всем мире; это плохо - и сообщение об ошибке / предупреждении совершенно правильно, чтобы указать на это. (Интересно, как это получилось таким образом?)

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

В этом случае я предлагаю вам удалить бит мировой записи из /usr /local и повторить попытку.

sudo chmod o-w /usr/local

РЕДАКТИРОВАТЬ:

Я нашел это в сценарии, который вы пытаетесь запустить.

This script requires the user #{ENV['USER']} to be an Administrator. If this
sucks for you then you can install Homebrew in your home directory or however
you please; please refer to our homepage. If you still want to use this script
set your user to be an Administrator in System Preferences or `su' to a
non-root user with Administrator privileges.

Поэтому я бы посоветовал вам временно добавить себя в качестве администратора. Я думаю, что это, вероятно, просто добавляет вас в группу администраторов. Если это так, вы можете также сделать /usr /local (и любые другие его подкаталоги) группой, принадлежащей / доступной для записи любому пользователю в группе администраторов.

sudo chgrp admin /usr/local
sudo chmod g+w /usr/local

Это было бы гораздо более приемлемым с точки зрения безопасности, чем общие изменения. Я видел несколько "решений", в которых люди объединяли все содержимое /usr /local со своим идентификатором.

Тут Тат Тут.

Или другой способ (как показано выше) установить его без полномочий root в домашний каталог.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .