Dlaczego „chroot” nigdy nie jest używany w Mac OS X?

9

Używam komputerów Mac od 25 lat i „UNIX” od OS X 10.0 .. ale tak naprawdę nigdy tak naprawdę nie myślałem o chroot, ani też nigdy tak naprawdę nie potrzebowałem ani nie chciałem ...

To proste pytanie, ale ... w jakich okolicznościach można by użyć „chroot” na komputerze Mac? Rzeczywiście jest to wbudowana funkcja z dni BSD, ale nigdy nie słyszałem, aby była używana ... Czy ta funkcjonalność jest częścią innego narzędzia wiersza polecenia lub narzędzia systemowego, które eliminuje potrzebę chroot? Jeśli tak, jaka jest równoważna funkcja? Jeśli nie, dlaczego wydaje się, że nigdy nie jest używany, odwoływany ani potrzebny?

mralexgray
źródło

Odpowiedzi:

14

Istnieją dwie główne kategorie zastosowań chroot ( artykuł w Wikipedii jest bardziej szczegółowy):

  • Izoluj aplikację, zapewniając jej ograniczony widok systemu plików. Zwykle robi się to na przykład na publicznych serwerach FTP, aby upewnić się, że nie będą w stanie udostępniać plików poza obszarem publicznym, nawet jeśli wystąpi błąd w oprogramowaniu serwera. Ten przypadek użycia staje się coraz mniej powszechny z dwóch powodów. Po pierwsze, chroot nie zapewnia dużej izolacji, luka na serwerze może pozwolić atakującemu wyrządzić szkody na wiele innych sposobów niż dostęp do plików. Po drugie, maszyny wirtualne, które zapewniają silniejszą izolację, stały się znacznie tańsze i często są łatwiejsze w konfiguracji, więc są naturalnym wyborem.
  • Uruchom oprogramowanie w innym systemie operacyjnym z tym samym jądrem, ale różnymi bibliotekami. Na przykład, jak zasugerował David Cournapeau , jeśli tworzysz oprogramowanie, masz wiele dodatkowych rzeczy zainstalowanych i chcesz mieć pewność, że twoje oprogramowanie nie zależy od tych dodatkowych rzeczy, możesz przetestować je w chroocie z tylko minimalna instalacja. Lub (ale nie sądzę, że jest to bardzo powszechne w systemach OSX) możesz uruchomić inną wersję systemu operacyjnego - na przykład mam 64-bitowy system Linux, który ma 32-bitową dystrybucję dostępną w chroot, na te rzadkie czasy, gdy ja trzeba uruchomić 32-bitową aplikację, która nie będzie działać bezpośrednio w systemie głównym.

Oba rodzaje przypadków użycia są raczej wyspecjalizowane. Chroot jest bezużyteczny dla większości ludzi; jest tam, ponieważ jest przydatny dla niektórych, a jego wdrożenie jest bardzo tanie.

Gilles „SO- przestań być zły”
źródło
6

Używam chroota na Mac OS X do testowania niektórych programów lub testowania pakietów projektów, w które jestem zaangażowany (np. Do testowania instalacji na 10.4, gdy używam 10.6).

David Cournapeau
źródło
2
czy możesz podać przykład, jak z niego korzystać?
Alexander Mills,
2

Jak często ludzie chcą otwierać swoje systemy osobiste, aby inni mieli do nich dostęp? Przez większość czasu chroot jest nastawiony na serwery z wieloma różnymi użytkownikami. Jeśli jednak naprawdę chcesz skonfigurować lokalny serwer SFTP, aby użytkownicy mieli dostęp do twojego systemu osobistego, zdecydowanie powinieneś go chrootować.

Może ten post zacznie Cię we właściwym kierunku:

http://hints.macworld.com/article.php?story=2004110314282345

Matt Beckman
źródło