Як Homebrew більше не потребує права власності на / usr / local?


28

Сьогодні я побіг brew updateі після переміщення сховища повідомив, що йому більше не потрібно володіти /usr/local:

$ brew update
Updated Homebrew from 5371359 to 13f08a2.
...
==> Migrating HOMEBREW_REPOSITORY (please wait)...
==> Migrated HOMEBREW_REPOSITORY to /usr/local/Homebrew!
Homebrew no longer needs to have ownership of /usr/local. If you wish you can
return /usr/local to its default ownership with:
  sudo chown root:wheel /usr/local

Ця зміна здається трохи сумнівною. Яким чином Brew виконує цю нову поведінку, очевидно, минаючи засоби безпеки?


Який контроль безпеки він обходить? Це /usr/localне включено в SIP. Див. Розділ Про захист цілісності системи на вашому Mac у розділі "Шляхи та програми, які сторонні програми та інсталятори можуть записати, щоб включити:" /usr/local.
користувач3439894

3
Це було сказано, що я не є користувачем Homebrew, оскільки я компілюю безпосередньо з вихідного коду потрібні утиліти, які не включаються в n OS X, проте я маю на увазі, що Homebrew буде переписаний у міру необхідності / необхідності, щоб діяти нормально, як і інші програми зроблено в минулому. IMO Homebrew повинен був бути написаний з get go, щоб не потрібно узурпувати право власності на root!
користувач3439894

Я маю на увазі, якщо /usr/localі його діти є власністю root:adminабо root:wheelне підлягають груповому запису, то я не маю доступу писати до цих каталогів (і, напевно, ні до домашньої мови, але якщо так, то як Homebrew може керувати установкою та видалення програм із цих місць?
Джейсон Р. Кумбс

3
Я просто зауважую, що в повідомленні є лише посилання, /usr/localа не його підлеглі. І дивлячись на те, що робить нове програмне забезпечення для домашньої версії, воно встановлює, що всі підкаталоги належать користувачеві US US і груповому запису.
Джейсон Р. Кумбс

Відповіді:


19

Відповідно до цього сценарію рубіну: update-report.rb , вони щойно перемістили матеріали до / usr / local / Homebrew, якими ви все ще належите .


2
Чи не потрібно / usr / local записувати $ USER для створення / usr / local / Homebrew, щоб відбутися? Що щодо інших каталогів, таких як / usr / local / Cellar або / usr / local / opt? Чи не потрібен домашній мовний доступ (non-sudo) для запису в ці каталоги? Як це зробити, якщо дріс належить корінню, а не піддається груповому запису?
Джейсон Р. Кумбс

1
Під час першого встановлення вони все ще використовують sudo для створення сховища домашніх програм, див. Встановити . Сценарій у моїй відповіді на оновлення, на той момент ви все ще є власником / usr / local, який ви порушили в старій версії.
albb

6

Тепер ми створюємо всі кореневі каталоги, /usr/localякі вам потрібні, і перевіряємо право власності на них, а не вимагати цього на /usr/localсобі.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.