Re: Как установить пакет более низкой версии
On 2009.08.27 at 02:43:53 +0400, Yuriy Kaminskiy wrote:
> On 26.08.2009 23:27, Alexey Pechnikov wrote:
> >> Легко. X - по определению сетевой протокол. Только разрешить X-серверу
> >> слушать tcp и выставит в chroot дисплей localhost:0 вместо :0
> > Почему localhost:0 - так секьюрнее или без этого не работает?
> Если не пробросить mount --bind {,/chroot}/tmp - не работает. Если пробросить -
> работает и без этого.
> Помимо этого, нужно внутрь chroot пробросить "${XAUTHORITY-$HOME/.Xauthority}"
> (man xauth; это обычный файл, поэтому можно и без mount --bind) [ну, или
> пробросить целиком /home].
Вот пробрасывать целиком /home я бы категорически не советовал.
И даже весь .Xauthority. Почитать man xauth и вытащить с помощью xauth
одну конкретную куку на один конкретный дисплей в файл, находящийся в
chroot.
То же касаеся и /tmp - там не только от x-сервера сокеты живут. А
например, от ssh-аgent.
Если уж изолировать программу от основной системы, то её надо в её
контейнер давать только то, что ей необходимо для работы.
Без unix-domain сокета от X-сервера она обойдется. TCP-шным перебьется.
Кстати, от этого сразу перестанут работать ряд расширений X-протокола,
вроде MIT-SHM, которые обеспечивают программе слишком прямой доступ к
потрохам X-сервера и являются одной из основных причин падения X-ов при работе
некоторых некорректно написанных программ.
Вторая причина - кривые проприетарные драйвера. Или кривые опенсурнсые
драйвера, написанные без полных спецификаций железа. С этим бороться
сложнее. Функциональности драйвера vesa многим не хватает.
Но тут может помочь использование виртуального X-сервера Xnest или
Xephyr. Который не пустит программу слишком близко к железу.
Reply to: