четверг, 29 января 2009 г.

chroot и firefox.

Для чего все это понадобилось мне. Есть "случайные" пользователи, которые с Х-терминалов цепляются к серверу. Все что надо - выдать им только браузер с поисковой формой. Но если нажать Ctrl-O, браузер начинает "шариться" по серверу, что совсем плохо. Для этого загоним браузер в chroot окружение.

Как правильно засунуть приложение в chroot существует много пособий.
В дальнейшем под "_sandbox_" будем понимать католог с окружением для chroot.

Что потребовалось для firefox. Необходимо создать саму песочницу и ее каталоги (окружение):
_sandbox_/bin - взял целиком по привычке на время отладки (можно повыбрасывать лишнее)
_sandbox_/etc/{fonts,gtk-2.0,pango}
_sandbox_/lib - тут Вам поможет команда ldd firefox-bin Она расскажет, что нужно закинуть в lib
_sandbox_/usr/lib - то же, что и для lib. Плюс сам firefox (весь), pango (весь), seamonkey (только нужные библиотеки, см. ldd)
_sandbox_/usr/share/fonts - можно выбрать только нужные. Не знаю, как у вас, а у меня это каталог TTF
И главное не забыть о каталоге _sandbox_/tmp/.X11-unix Его надо "прокинуть" с реальной системы из /tmp/.X11-unix. (это касается запуска в песочнице на локальном компьютере)
mount -o bind /tmp/.X11-unix _sandbox_/tmp/.X11-unix
В противном случае при запуске из chroot _sandbox_ X приложений получим что-то вроде этого: "Error: cannot open display"

В принципе на этом все. Что-то возможно и упустил, но это уже мелочи.
Теперь можно запустить браузер и попробовать из него посмотреть файлову систему (Ctrl-O) и убедиться, что все в порядке:
chroot _sandbox_ /usr/lib/firefox/firefox

Комментариев нет:

Отправить комментарий