[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: