On 2003.01.10 at 12:04:28 +0400, Vlad Harchev wrote:

> On Thu, Jan 09, 2003 at 09:03:32PM +0200, Maxim V. Kryzhny wrote:
> > привет,
> 
>  Кратко: пустить в окне xterm'а на той машине следущее:
> xhost +localhost
> 
>  Без этого программам другого пользователя запрещено рисовать на дисплее.

Ну неправда это, неправда.

Авторизация в X-ах не имеет никакого отношения к локальным
пользователям той машины, на которой выполняются X-овые клиенты.

Программа либо может предоставить авторизующий токен (magic cookie),
подходящий для данного дисплея, и тогда ее пускают, либо не может.

Команда xhost дает доступ всем программам с определенного хоста (т.е. в
качестве авторизующего токена испольуется имя хоста, на котором работает
клиент), и поэтому ей пользоваться не следует.

Лучше пользоваться нормальными методами авторизации - MIT-MAGIC-COOKIE
и XDM-AUTHORIZATION-1 (последний используется по умолчанию).

Токены эти хранятся (и читаются клиентами) из файла, на который
указывает переменная XAUTHORITY (если не установлена, то из
${HOME}/.Xauthority). Можно извлечь нужный токен из этого файла командой
xauth extract, и передать другому пользователю чтобы тот его включил
в свой файл командой xauth merge. Тогда его пустят к твоему дисплею.

Файл .Xauthority, естественно, имеет права 0600, поэтому другим
пользователям и недоступен. 

Но если хочется запустить X-овую программу из-под рута,
достаточно сказать ей XAUTHORITY=~ты/.Xauthority. Из-под рута она твой
файл прочитает, и ее прекрасно пустят к дисплею.




-- 
Victor Wagner                   [EMAIL PROTECTED]
Chief Technical Officer         Office:7-(095)-748-53-88
Communiware.Net                 Home: 7-(095)-135-46-61
http://www.communiware.net      http://www.ice.ru/~vitus

Ответить