ALT Linux Team development discussions
 help / color / mirror / Atom feed
* Re: [devel] Re: IA: /usr/sbin/gnome-pty-helper
@ 2002-10-05 10:52 morozov
  2002-10-06 20:19 ` Dmitry V. Levin
  0 siblings, 1 reply; 9+ messages in thread
From: morozov @ 2002-10-05 10:52 UTC (permalink / raw)
  To: devel


10/04/2002 21:19:17 devel-admin wrote:
>> Ну, в этой схеме есть один недостаток: у нас не будет GTK'шных
>> терминалов. Либо все такие терминалы _обязаны_ делать
>> setresgid(getgid()...) до инициализации графической подсистемы.
>> Возможно, последнее - вполне разумное требование.
>
>Одновременно придется запретить им создавать новые файлы.
Почему? По-хорошему же, fsgid меняется вместе с egid. Или не меняется? А
setfsgid не поможет?

>> P.S. setresgid - это чтобы назад пути не было. Если можно забыть про
>> сохраненный gid, то можно делать setegid(getgid())
>Нельзя - gtk проверяет все три id.
Ну, нельзя так нельзя.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [devel] Re: IA: /usr/sbin/gnome-pty-helper
  2002-10-05 10:52 [devel] Re: IA: /usr/sbin/gnome-pty-helper morozov
@ 2002-10-06 20:19 ` Dmitry V. Levin
  2002-10-07  7:15   ` Alexey Morozov
  0 siblings, 1 reply; 9+ messages in thread
From: Dmitry V. Levin @ 2002-10-06 20:19 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 617 bytes --]

On Sat, Oct 05, 2002 at 05:52:01PM +0700, morozov@novosoft.ru wrote:
> >> Ну, в этой схеме есть один недостаток: у нас не будет GTK'шных
> >> терминалов. Либо все такие терминалы _обязаны_ делать
> >> setresgid(getgid()...) до инициализации графической подсистемы.
> >> Возможно, последнее - вполне разумное требование.
> >
> >Одновременно придется запретить им создавать новые файлы.
> Почему? По-хорошему же, fsgid меняется вместе с egid. Или не меняется? А
> setfsgid не поможет?

Нет, поскольку смена egid влечет за собой смену fsgid.

Конечно, можно сделать fork+pipe, но это уже совсем другая история.


--
ldv

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [devel] Re: IA: /usr/sbin/gnome-pty-helper
  2002-10-06 20:19 ` Dmitry V. Levin
@ 2002-10-07  7:15   ` Alexey Morozov
  2002-10-07  9:36     ` Dmitry V. Levin
  0 siblings, 1 reply; 9+ messages in thread
From: Alexey Morozov @ 2002-10-07  7:15 UTC (permalink / raw)
  To: ALT Devel discussion list

On Mon, Oct 07, 2002 at 12:19:04AM +0400, Dmitry V. Levin wrote:
> > >Одновременно придется запретить им создавать новые файлы.
> > Почему? По-хорошему же, fsgid меняется вместе с egid. Или не меняется? А
> > setfsgid не поможет?
> Нет, поскольку смена egid влечет за собой смену fsgid.
Дык тогда все хорошо? Главное - сбросить egid до gid до создания
каких-либо файлов. Или я чего-то недопонимаю в процессе?

> Конечно, можно сделать fork+pipe, но это уже совсем другая история.
Хмм... Из пушки...



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [devel] Re: IA: /usr/sbin/gnome-pty-helper
  2002-10-07  7:15   ` Alexey Morozov
@ 2002-10-07  9:36     ` Dmitry V. Levin
  2002-10-08  6:31       ` Alexey Morozov
  0 siblings, 1 reply; 9+ messages in thread
From: Dmitry V. Levin @ 2002-10-07  9:36 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 915 bytes --]

On Mon, Oct 07, 2002 at 02:15:58PM +0700, Alexey Morozov wrote:
> > > >Одновременно придется запретить им создавать новые файлы.
> > > Почему? По-хорошему же, fsgid меняется вместе с egid. Или не меняется? А
> > > setfsgid не поможет?
> > Нет, поскольку смена egid влечет за собой смену fsgid.
> Дык тогда все хорошо? Главное - сбросить egid до gid до создания
> каких-либо файлов. Или я чего-то недопонимаю в процессе?

Запускающий helper процесс должен входить в группу utempter.
Если он сбросит права раньше срока, то получит EACCES.
Если он их не сбросит до инициализации Gtk, то последний его пошлет.
Если же он выставит все group IDs в utempter, то получается ерунда с
доступом к файловой системе - отсюда и запрет на создание файлов.

> > Конечно, можно сделать fork+pipe, но это уже совсем другая история.
> Хмм... Из пушки...

Зато реально. Других рабочих вариантов до сих пор предложено не было.


--
ldv

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [devel] Re: IA: /usr/sbin/gnome-pty-helper
  2002-10-07  9:36     ` Dmitry V. Levin
@ 2002-10-08  6:31       ` Alexey Morozov
  2002-10-08  7:49         ` Dmitry V. Levin
  0 siblings, 1 reply; 9+ messages in thread
From: Alexey Morozov @ 2002-10-08  6:31 UTC (permalink / raw)
  To: ALT Devel discussion list

On Mon, Oct 07, 2002 at 01:36:01PM +0400, Dmitry V. Levin 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+ и всяких прочих там виджетсетов/библиотек и
   всего остального.

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

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



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [devel] Re: IA: /usr/sbin/gnome-pty-helper
  2002-10-08  6:31       ` Alexey Morozov
@ 2002-10-08  7:49         ` Dmitry V. Levin
  2002-10-08  8:38           ` Alexey Morozov
  2002-10-08 13:16           ` [devel] а оно _вообще_ -- нужно? (was: IA: /usr/sbin/gnome-pty-helper) Michael Shigorin
  0 siblings, 2 replies; 9+ messages in thread
From: Dmitry V. Levin @ 2002-10-08  7:49 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 1621 bytes --]

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

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [devel] Re: IA: /usr/sbin/gnome-pty-helper
  2002-10-08  7:49         ` Dmitry V. Levin
@ 2002-10-08  8:38           ` Alexey Morozov
  2002-10-08  8:54             ` Dmitry V. Levin
  2002-10-08 13:16           ` [devel] а оно _вообще_ -- нужно? (was: IA: /usr/sbin/gnome-pty-helper) Michael Shigorin
  1 sibling, 1 reply; 9+ messages in thread
From: Alexey Morozov @ 2002-10-08  8:38 UTC (permalink / raw)
  To: ALT Devel discussion list

On Tue, Oct 08, 2002 at 11:49:56AM +0400, Dmitry V. Levin wrote:
> > 0. права на терминал 02511 root:utempter
> Т.е. на эмулятор терминала.
Разумеется :-).
Внесете соответствующие изменения в menu? :-)

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

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

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

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

> 
> 
> --
> ldv




^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [devel] Re: IA: /usr/sbin/gnome-pty-helper
  2002-10-08  8:38           ` Alexey Morozov
@ 2002-10-08  8:54             ` Dmitry V. Levin
  0 siblings, 0 replies; 9+ messages in thread
From: Dmitry V. Levin @ 2002-10-08  8:54 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 1248 bytes --]

On Tue, Oct 08, 2002 at 03:38:46PM +0700, Alexey Morozov wrote:
> > > 1. запуск терминала (egid == utempter, gid == user_gid)
> > >      |
> > >       \_ 2. запуск pty-helper
> > > 3. сброс привилегий в _gid_ (не в egid!).
> > > 4. инициализация GTK+ и всяких прочих там виджетсетов/библиотек и
> > >    всего остального.
> > Выполнение пункта 2 до пункта 4, скорее всего, потребует серьезного
> > изменения в коде эмуляторов.
> Хм... Очень странно. Это ж в ровности один вызов utempter_add_record?

Дело в том, что нельзя c помощью utempter'а внести информацию о терминале,
которого еще нет.
А некоторые эмуляторы (i.e. screen) создают терминалы по мере надобности.

> > > плюсы: достаточная простота реализации, минимизация изменений в
> > > сравнении с vanilla sources. 
> > > минус: существуют проблемы с отслеживанием момента закрытия
> > Сформулирую иначе: нет способа внести запись о закрытии терминала.
> :-)
> 
> > > Кстати, возможно, идея с долгоживущим utempter'ом или привилегированным
> > > процессом его запускающим, возможно, заслуживает рассмотрения...
> > Можно даже сервер сделать. :)
> Ну, сервер не сервер... Долгоживущий процесс...

Можно и сервер, с авторизацией через unix domain socket.
Но это не меняет сути дела.


--
ldv

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [devel] а оно _вообще_ -- нужно? (was: IA: /usr/sbin/gnome-pty-helper)
  2002-10-08  7:49         ` Dmitry V. Levin
  2002-10-08  8:38           ` Alexey Morozov
@ 2002-10-08 13:16           ` Michael Shigorin
  1 sibling, 0 replies; 9+ messages in thread
From: Michael Shigorin @ 2002-10-08 13:16 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 742 bytes --]

On Tue, Oct 08, 2002 at 11:49:56AM +0400, Dmitry V. Levin wrote:
> Сформулирую иначе: нет способа внести запись о закрытии терминала.

С другой стороны: а оно нужно?

Лично мне этот логгинг только мешает, т.к. открыть/захлопнуть
окошко -- дело крайне частое, при этом реально важные записи от
*dm -- попросту теряются в потоке.

Никакой аутентификационной нагрузки -- не несет.  Смысловой --
тоже ("с восьми утра до десяти вечера усиленно работали в
...двухстах экземплярах aterm(1).  О!").

Поэтому был бы рад выслушать аргументы "за" -- вдруг выяснится,
что и мальчика-то не было. :-)  И извиняюсь, если что-то
пропустил.

-- 
 ---- WBR, Michael Shigorin <mike@altlinux.ru>
  ------ Linux.Kiev http://www.linux.kiev.ua/

[-- Attachment #2: Type: application/pgp-signature, Size: 187 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2002-10-08 13:16 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-10-05 10:52 [devel] Re: IA: /usr/sbin/gnome-pty-helper morozov
2002-10-06 20:19 ` Dmitry V. Levin
2002-10-07  7:15   ` Alexey Morozov
2002-10-07  9:36     ` Dmitry V. Levin
2002-10-08  6:31       ` Alexey Morozov
2002-10-08  7:49         ` Dmitry V. Levin
2002-10-08  8:38           ` Alexey Morozov
2002-10-08  8:54             ` Dmitry V. Levin
2002-10-08 13:16           ` [devel] а оно _вообще_ -- нужно? (was: IA: /usr/sbin/gnome-pty-helper) Michael Shigorin

ALT Linux Team development discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
		devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
	public-inbox-index devel

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git