Назад | Перейти на главную страницу

Почему «chroot» никогда не используется в Mac OS X?

Я использую Mac уже 25 лет, а "UNIX" - с OS X 10.0 .. но я никогда особо не задумывался о chroot, и я никогда не нуждался и не хотел ...

Это простой вопрос, но ... при каких обстоятельствах можно было бы использовать chroot на Mac? Это действительно встроенная функция со времен BSD, но я никогда не слышал, чтобы она использовалась ... Является ли функциональность частью другого инструмента командной строки или системного уровня, который устраняет необходимость chroot? Если да, то какова эквивалентная функция? Если нет, то почему кажется, что он никогда не используется, не упоминается или не нужен?

Существует две основные категории использования chroot ( Статья в Википедии более подробно):

  • Изолируйте приложение, предоставив ему ограниченный обзор файловой системы. Обычно это делается для общедоступных FTP-серверов, например, чтобы убедиться, что они не смогут обслуживать файлы за пределами общедоступной области, даже если в программном обеспечении сервера есть ошибка. Этот вариант использования становится все реже и реже по двум причинам. Во-первых, chroot не обеспечивает достаточной изоляции, уязвимость на сервере может позволить злоумышленнику нанести ущерб множеством других способов, кроме доступа к файлам. Во-вторых, виртуальные машины, которые обеспечивают более сильную изоляцию, стали намного дешевле, и их часто проще настроить, поэтому они являются естественным выбором.
  • Запускайте программное обеспечение в другой операционной системе с тем же ядром, но с разными библиотеками. Например, по предложению Дэвида Курнапо, если вы разрабатываете программное обеспечение, у вас установлено много дополнительных вещей и вы хотите убедиться, что ваше программное обеспечение не зависит от этих дополнительных вещей, вы можете протестировать его в chroot с минимальной установкой. Или (но я не думаю, что это очень распространено для систем OSX) вы можете запустить другую версию ОС - например, у меня есть 64-битная система Linux, в которой 32-битный дистрибутив доступен с chroot, для тех редких случаев, когда я необходимо запустить 32-разрядное приложение, которое не будет работать непосредственно в основной системе.

Оба варианта использования довольно специализированы. Chroot бесполезен для большинства людей; он там, потому что некоторым он полезен и очень дешев в реализации.

Я использую chroot в mac os x для тестирования некоторых программ или для тестирования упаковки проектов, в которых я участвую (например, для тестирования установки на 10.4, пока я использую 10.6).

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

Может быть, этот пост направит вас в правильном направлении:

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