Являются ли мои права для / usr / local / correct?

Я использую HomeBrew для моего порта (кажется немного «чисткой», чем MacPorts).

Я могу установить без sudo ing (что здорово), но, похоже, ему нужен шаг привязки ( /usr /local /share /man /man3 ) принадлежит root ).
A руководство I найденный предлагает я рекурсивно chown /usr /local , делая

  sudo chown -R `whoami` /usr /local
 

Является ли это безопасным или плохой идеей?

Также: мои права корректны?

  $ pwd
/USR /местные /доли /человек
$ ls -lah
всего 32
drwxrwxr-x 8 корневой персонал 272B 4 Набор 11:02.
drwxrwxr-x 9 корневой персонал 306B 10 Набор 11:27 ..
drwxr-xr-x 3 Корневое колесо 102B 4 назад 2009 de
drwxrwxr-x 163 корень персонала 5,4K 10 Set 11:27 man1
drwxr-xr-x 11 Корневое колесо 374B 10 Набор 11:27 man3
drwxr-xr-x 7 назад staff 238B 10 Set 11:39 man5
drwxr-xr-x 11 назад персонал 374B 10 набор 11:39 man7
-rw-r-r-- 1 корень штата 13K 4 Set 11:02 whatis
 
85 голосов | спросил Agos 10 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowFri, 10 Sep 2010 14:07:37 +0400 2010, 14:07:37

6 ответов


34

Обычно лучше держать разрешения как можно более строгими. Сохранение /usr /local , принадлежащее root , означает, что только процессы, которые выполняются как root / sudo (или запрашивают пользователь admin через диалоговое окно авторизации Apple) может писать в эту область. Таким образом, загрузка процесса должна запрашивать у вас пароль перед тем, как развращать файлы там.

Но, как вы говорите, это затрудняет добавление новых программ.

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

Если вы хотите избежать sudo, я бы установил Homebrew в ~ /usr /local и изменил ваш путь, manpath и т. д., чтобы включить туда каталоги.

Лучше всего создать другого пользователя - например, homebrew и создать каталог, принадлежащий этому пользователю. Затем установите там, используя sudo -U homebrew . Другие пользователи получат возможность не перезаписывать другие файлы, потому что они не работают как root , а другие программы не могут повлиять на доморощенный. (Я отмечаю, что часто задаваемые вопросы по домашнему вирусу предлагает этот новый пользователь, если вы находитесь в «многопользовательском режиме» окружение ". Я бы сказал, что любая машина Unix, включая macOS, представляет собой многопользовательскую среду)

Однако, поскольку вики-сайт Homebrew говорит, что рецепты не находят все случаи кода /usr /local и заменяют их на выбранный каталог, я подозреваю, что мы застряли в /usr /local .

ответил Mark 10 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowFri, 10 Sep 2010 14:50:57 +0400 2010, 14:50:57
43

Я тоже использую Homebrew и могу подтвердить, что он полностью безопасен. Цитирование Установка на официальном Часто задаваемые вопросы по домашнему вирусу :

  

Сделайте себе одолжение и выберите /usr /local

     
  1. Это проще
    /usr /local /bin уже находится в вашем PATH .

  2.   
  3. Это проще
      Тонны скриптов сборки ломаются, если их зависимости не присутствуют ни в /usr, ни в /usr /local. Мы исправим это для формул Homebrew (хотя мы не всегда его проверяем), но вы обнаружите, что многие скрипты настройки RubyGems и Python ломаются, что является чем-то вне нашего контроля.

  4.   
  5. Безопасно
    Apple согласилась с POSIX и оставила этот каталог для нас. Это означает, что по умолчанию нет каталога /usr /local , поэтому нет необходимости беспокоиться о том, чтобы испортить существующие инструменты.
  6.   

Если вы планируете устанавливать драгоценные камни, зависящие от варевов, тогда сохраните себе кучу хлопот и установите на /usr /local !

     

Нет ничего странного в том, чтобы рассказать gem о том, чтобы смотреть в нестандартных каталогах для заголовков и dylib. Если вы выберете /usr /local , все «просто работает!»

Я просто добавлю, что делает вещи как root - очень плохая идея , поэтому chown ing /usr /local не только кажется разумный для меня (это не системный каталог OSX), но sane .

Ваши разрешения неверны (пока). Просто запустите команду, которую вы указали, и все будет хорошо.

Если у вас есть другие проблемы, помните, что доктор может вам помочь!

ответил Carmine Paolino 10 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowFri, 10 Sep 2010 14:47:28 +0400 2010, 14:47:28
8

Если вы используете Homebrew, вы должны предоставить разрешение на запись для определенной группы (либо admin , либо staff ), чтобы файлы могли совместно использоваться пользователями, которые в этой группе.

Например:

  sudo chgrp -R admin /usr /local /Library /Caches /Homebrew
sudo chmod -R g + w /usr /local /Библиотека /Кэши /Homebrew
 

Затем назначьте пользователям, которым должен быть доступ к команде brew , к этой группе (проверьте свои группы с помощью: id -Gn ).

Затем, когда вы работаете с brew , не запускайте его с помощью sudo .

Если вы все еще имеете проблему с разрешением, запустите brew doctor , чтобы устранить проблему.

ответил kenorb 30 Maypm15 2015, 13:09:18
7

Для того, что стоит, /usr /local не рассматривается как «системная» папка OS X, а на совершенно новой Snow Leopard эта папка пуста.

Любой корневой ресурс в этой папке является результатом sudo make install на другом программном обеспечении или дает ваш пароль после двойного щелчка на .pkg , который хочет сбрасывать материал в /usr /local .

Владение /usr /local «работает на меня» на двух машинах более года.

Один из них - это то, что если вы установили MySQL (не используя Homebrew) и chown его файлы, то он, вероятно, больше не сможет видеть свои базы данных (так что вам придется отдать их обратно любому пользователю MySQL работает как.)

ответил Adam Vandenberg 10 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowFri, 10 Sep 2010 19:57:27 +0400 2010, 19:57:27
6

Как и в Homebrew 1.0.0:

  

У Homebrew больше не требуется владение /usr /local. Если вы хотите   вы можете вернуть /usr /local в свою собственность по умолчанию: sudo chown   root: wheel /usr /local

ответил Yuhao Zhang 21 stEurope/Moscowp30Europe/Moscow09bEurope/MoscowWed, 21 Sep 2016 20:55:55 +0300 2016, 20:55:55
0

Я думаю, что для пользователей будет нормально писать разрешения /usr /local - это значит, что вы не используете sudo для каждого скрипта сборки. Мне не нравится идея обычного пользователя , владеющего /usr /local . Я бы предпочел иметь собственный (или похожий) корневой (или похожий) собственный /usr /local , но изменить разрешения, чтобы пользователи (или, по крайней мере, некоторые привилегированные группы) могли писать на него. Это похоже на концептуально правильный подход.

ответил Marnen Laibow-Koser 29 Maypm13 2013, 20:42:29

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132