Wiele lat temu można było uciec od działania brew
jako root po prostu przez chownowanie brew
do rootowania , ale usunęli tę funkcję. Więc w Homebrew 1.1.6 edytowałem, /usr/local/Homebrew/Library/Homebrew/brew.sh
aby usunąć kontrolę roota (tę, która powiedziała, że jest „bardzo niebezpieczna”), aby móc uruchomić brew
jako root.
Nowsza wersja Homebrew nadal z tym współpracuje, ale wciąż przywraca brew.sh
plik za każdym razem po uruchomieniu brew
, nawet jeśli chmod 500
to robię . Mógłbym napisać skrypt, aby go zmienić, a następnie uruchomić brew
automatycznie, ale nie jestem pewien, czy to zawsze zadziała i nie chcę ryzykować. Czy ktoś znalazł inną metodę uruchamiania Homebrew jako root?
brew
jako root? Czy teżsudo
nie wystarcza do twoich celów?sudo
uruchamia go jako root i daje mi ten sam „bardzo niebezpieczny” błąd. Chcę uruchomić jako root, ponieważ w przeciwnym razie ma problemy z instalacją niektórych pakietów, zwłaszcza jeśli cokolwiek nie zostało zainstalowane przez Homebrew (np. Przezpip
). Wiele razy zszedłem tą drogą. Ponadto nie działa poprawnie dla wielu użytkowników bez dziwnych obejść, chyba że zainstaluję wszystko jako root.root
jest ryzykowne. Nawet budując pakiet bez menedżera pakietów, skompilowałbyś go jako użytkownik nieuprzywilejowany (sam), a następnie zainstalowałeś pakiet jak wroot
przypadkusudo
. Menedżerowie pakietów, tacy jak Fink i MacPorts, budują z własnymi użytkownikami nieuprzywilejowanymi, a następnie instalują jakoroot
. Homebrew nie ma takiego mechanizmu.brew.sh
plik jest przywracany po zmodyfikowaniu go, a następnie uruchomieniubrew
polecenia. Więc mogę uruchomićsudo brew whatever
ibrew whatever
w tandemie dobrze. Mojebrew --version
dane wyjściowe to:Homebrew 1.2.1-98-g803f9cbf7b-dirty Homebrew/homebrew-core (git revision d3d6; last commit 2017-05-28)
FYI, zmodyfikowałem mójbrew.sh
plik, aby skomentować wszystkie wiersze wcheck-run-command-as-root
funkcji ireturn
zamiast tego umieściłem pojedynczą instrukcję na górze funkcji.Odpowiedzi:
Po wprowadzeniu zmiany w skrypcie spróbuj ustawić niezmienną flagę na brew.sh.
Nie testowałem Zasadniczo nie kibicuję aplikacjom, których programiści błagają mnie, aby tego nie robić.
źródło
sudo brew install
działa normalnie.Typowi użytkownicy nie powinni tego robić, ale nie jesteś typowy, prawda?
Dwie kwestie:
Nie możesz przestać rootować. Jeśli nalegasz na używanie roota, root może nadpisywać,
brew.sh
bez względu na wszystko.W
brew
końcu nie możesz przestać , mówisz o bieganiubrew
.Więc będziemy nad tym pracować. Ustawmy alias do skopiowania,
brew.sh
a następnie uruchombrew
.(Napraw ścieżki pasujące do twojego systemu).
Teraz wszystko, co musisz zrobić, to:
(Stanie się rootem, skopiowane
brew.sh
, a następnie uruchomionebrew
jako root z argumentami, a następniebrew
nadpiszebrew.sh
i będziesz gotowy, aby to zrobić od nowa)Uwaga: Możesz także wprowadzić
sudo
alias, ale w ten sposób będzie lepiej, ponieważ za każdym razem będziesz monitowany o hasło.Zazwyczaj nie można używać
setuid
(chmod u+s
) do rootowania skryptów powłoki dla bezpieczeństwa. Perl ma osobny program,suidperl
który można zainstalować i może zwiększyć uprawnienia użytkownika, ale takie rozwiązania są nieco głębokie, aby uzyskać szybką odpowiedź.źródło