[devel] Re: IA: /usr/sbin/gnome-pty-helper

Dmitry V. Levin =?iso-8859-1?q?ldv_=CE=C1_altlinux=2Eorg?=
Вт Окт 8 11:49:56 MSD 2002


On Tue, Oct 08, 2002 at 01:31:22PM +0700, Alexey Morozov wrote:
> > Запускающий helper процесс должен входить в группу utempter.
> > Если он сбросит права раньше срока, то получит EACCES.
> > Если он их не сбросит до инициализации Gtk, то последний его пошлет.
> > Если же он выставит все group IDs в utempter, то получается ерунда с
> > доступом к файловой системе - отсюда и запрет на создание файлов.
> > 
> > > > Конечно, можно сделать fork+pipe, но это уже совсем другая история.
> > > Хмм... Из пушки...
> > Зато реально. Других рабочих вариантов до сих пор предложено не было.
> Стоп. А как насчет следующей схемы:
> 0. права на терминал 02511 root:utempter

Т.е. на эмулятор терминала.

> 1. запуск терминала (egid == utempter, gid == user_gid)
>      |
>       \_ 2. запуск pty-helper
> 3. сброс привилегий в _gid_ (не в egid!).
> 4. инициализация GTK+ и всяких прочих там виджетсетов/библиотек и
>    всего остального.

Выполнение пункта 2 до пункта 4, скорее всего, потребует серьезного
изменения в коде эмуляторов.

> плюсы: достаточная простота реализации, минимизация изменений в
> сравнении с vanilla sources. 
> минус: существуют проблемы с отслеживанием момента закрытия

Сформулирую иначе: нет способа внести запись о закрытии терминала.

> Кстати, возможно, идея с долгоживущим utempter'ом или привилегированным
> процессом его запускающим, возможно, заслуживает рассмотрения...

Можно даже сервер сделать. :)

> Но здесь, опять же, есть минус: поскольку процесс все же принадлежит
> пользователю, то он может читать/модифицировать его память...

Не может - процесс то ведь привилегированный.


--
ldv
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20021008/9b46681b/attachment-0001.bin>


Подробная информация о списке рассылки Devel