* [devel] Q: Аксакалам IPC
@ 2019-08-23 12:01 Paul Wolneykien
2019-08-23 14:03 ` Vitaly Lipatov
2019-08-24 23:45 ` Alexey V. Vissarionov
0 siblings, 2 replies; 9+ messages in thread
From: Paul Wolneykien @ 2019-08-23 12:01 UTC (permalink / raw)
To: ALT Linux Team development discussions
Всем привет. У меня вопрос к знатокам межпроцессного взаимодействия в
Linux: какой бы способ соединения вы посоветовали использовать для того,
чтобы связаться снаружи с процессом, который работает внутри чрута? При
этом необходим контроль доступа на уровне прав пользователей и групп
Linux. Если сказать точнее, то достаточно будет, если доступ к каналу
сможет получить только процесс с EUID root.
Вопрос связан с https://bugzilla.altlinux.org/show_bug.cgi?id=37050 ,
где обсуждается проблема с нашим инсталлятором. Для тех, кто не в курсе
или забыл: наш инсталлятор первую половину работы делает "снаружи", т.е.
клиентская и серверная части находятся в одном пространстве имён (или
как это называется?); вторая же половина работы должна выполняться так,
что клиент остаётся где был (он не выключается), но в чруте запускается
новый экземпляр сервера, к которому клиент должен подключиться вместо
того экземпляра, с которым он разговаривал до сих пор.
Сейчас это достигается через mount -o bind директории с сокетом (unix
domain socket) из чрута наружу. И что-то иногда идёт не так.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [devel] Q: Аксакалам IPC
2019-08-23 12:01 [devel] Q: Аксакалам IPC Paul Wolneykien
@ 2019-08-23 14:03 ` Vitaly Lipatov
2019-08-23 14:10 ` Paul Wolneykien
2019-08-24 23:45 ` Alexey V. Vissarionov
1 sibling, 1 reply; 9+ messages in thread
From: Vitaly Lipatov @ 2019-08-23 14:03 UTC (permalink / raw)
To: ALT Linux Team development discussions
Paul Wolneykien писал 23.8.19 15:01:
> Всем привет. У меня вопрос к знатокам межпроцессного взаимодействия в
> Linux: какой бы способ соединения вы посоветовали использовать для
> того,
> чтобы связаться снаружи с процессом, который работает внутри чрута? При
....
> Сейчас это достигается через mount -o bind директории с сокетом (unix
> domain socket) из чрута наружу. И что-то иногда идёт не так.
Я бы предложил исправить это «что-то идёт не так». Взаимодействие через
unix socket — отличный вариант, и переделывать ничего не придётся.
--
С уважением,
Виталий Липатов,
Etersoft
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [devel] Q: Аксакалам IPC
2019-08-23 14:03 ` Vitaly Lipatov
@ 2019-08-23 14:10 ` Paul Wolneykien
2019-08-23 14:26 ` Anton Farygin
0 siblings, 1 reply; 9+ messages in thread
From: Paul Wolneykien @ 2019-08-23 14:10 UTC (permalink / raw)
To: devel
23.08.2019 17:03, Vitaly Lipatov пишет:
> Paul Wolneykien писал 23.8.19 15:01:
>> Всем привет. У меня вопрос к знатокам межпроцессного взаимодействия в
>> Linux: какой бы способ соединения вы посоветовали использовать для того,
>> чтобы связаться снаружи с процессом, который работает внутри чрута? При
> ....
>> Сейчас это достигается через mount -o bind директории с сокетом (unix
>> domain socket) из чрута наружу. И что-то иногда идёт не так.
>
> Я бы предложил исправить это «что-то идёт не так».
Чиним...
> Взаимодействие через
> unix socket — отличный вариант, и переделывать ничего не придётся.
Даже в сочетании с mount -o bind? Кто-нибудь ещё вообще так делает?
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [devel] Q: Аксакалам IPC
2019-08-23 14:10 ` Paul Wolneykien
@ 2019-08-23 14:26 ` Anton Farygin
2019-08-23 14:32 ` Paul Wolneykien
0 siblings, 1 reply; 9+ messages in thread
From: Anton Farygin @ 2019-08-23 14:26 UTC (permalink / raw)
To: devel
On 23.08.2019 17:10, Paul Wolneykien wrote:
> 23.08.2019 17:03, Vitaly Lipatov пишет:
>> Paul Wolneykien писал 23.8.19 15:01:
>> Чиним...
>> Взаимодействие через
>> unix socket — отличный вариант, и переделывать ничего не придётся.
> Даже в сочетании с mount -o bind? Кто-нибудь ещё вообще так делает?
Я знаю что у нас в некоторых случаях используется абстрактный unix
сокет, который можно использовать без отражения его на файловую систему.
По идее в этом случае не должно возникнуть проблем с mount -o bind.
Попробуйте сделать, если можно, в guile - первый байт адреса UNIX socket
должен быть равен 0.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [devel] Q: Аксакалам IPC
2019-08-23 14:26 ` Anton Farygin
@ 2019-08-23 14:32 ` Paul Wolneykien
2019-08-23 14:36 ` Dmitry V. Levin
2019-08-23 14:41 ` Anton Farygin
0 siblings, 2 replies; 9+ messages in thread
From: Paul Wolneykien @ 2019-08-23 14:32 UTC (permalink / raw)
To: devel
23.08.2019 17:26, Anton Farygin пишет:
> On 23.08.2019 17:10, Paul Wolneykien wrote:
>> 23.08.2019 17:03, Vitaly Lipatov пишет:
>>> Paul Wolneykien писал 23.8.19 15:01:
>>> Чиним... Взаимодействие через
>>> unix socket — отличный вариант, и переделывать ничего не придётся.
>> Даже в сочетании с mount -o bind? Кто-нибудь ещё вообще так делает?
>
> Я знаю что у нас в некоторых случаях используется абстрактный unix
> сокет, который можно использовать без отражения его на файловую систему.
> По идее в этом случае не должно возникнуть проблем с mount -o bind.
Да, уже высказывалось такое предложение (в баге). Но я ещё не знаю, не
разбирался ещё, как абстрактные сокеты сочетаются с разграничением прав?
Вдруг к такому сокету любой пользователь сможет подключиться?
>
> Попробуйте сделать, если можно, в guile - первый байт адреса UNIX socket
> должен быть равен 0.
Библиотека vhttpd написана на C.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [devel] Q: Аксакалам IPC
2019-08-23 14:32 ` Paul Wolneykien
@ 2019-08-23 14:36 ` Dmitry V. Levin
2019-08-23 15:05 ` Leonid Krivoshein
2019-08-23 14:41 ` Anton Farygin
1 sibling, 1 reply; 9+ messages in thread
From: Dmitry V. Levin @ 2019-08-23 14:36 UTC (permalink / raw)
To: ALT Devel discussion list
On Fri, Aug 23, 2019 at 05:32:29PM +0300, Paul Wolneykien wrote:
> 23.08.2019 17:26, Anton Farygin пишет:
> > On 23.08.2019 17:10, Paul Wolneykien wrote:
> >> 23.08.2019 17:03, Vitaly Lipatov пишет:
> >>> Paul Wolneykien писал 23.8.19 15:01:
> >>> Чиним... Взаимодействие через
> >>> unix socket — отличный вариант, и переделывать ничего не придётся.
> >> Даже в сочетании с mount -o bind? Кто-нибудь ещё вообще так делает?
> >
> > Я знаю что у нас в некоторых случаях используется абстрактный unix
> > сокет, который можно использовать без отражения его на файловую систему.
> > По идее в этом случае не должно возникнуть проблем с mount -o bind.
>
> Да, уже высказывалось такое предложение (в баге). Но я ещё не знаю, не
> разбирался ещё, как абстрактные сокеты сочетаются с разграничением прав?
> Вдруг к такому сокету любой пользователь сможет подключиться?
Конечно, если используется abstract namespace, то разграничения прав
доступа нет.
Реализация на традиционных unix domain sockets работала много лет,
зачем было её ломать?
--
ldv
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [devel] Q: Аксакалам IPC
2019-08-23 14:32 ` Paul Wolneykien
2019-08-23 14:36 ` Dmitry V. Levin
@ 2019-08-23 14:41 ` Anton Farygin
1 sibling, 0 replies; 9+ messages in thread
From: Anton Farygin @ 2019-08-23 14:41 UTC (permalink / raw)
To: devel
On 23.08.2019 17:32, Paul Wolneykien wrote:
> 23.08.2019 17:26, Anton Farygin пишет:
>> On 23.08.2019 17:10, Paul Wolneykien wrote:
>>> 23.08.2019 17:03, Vitaly Lipatov пишет:
>>>> Paul Wolneykien писал 23.8.19 15:01:
>>>> Чиним... Взаимодействие через
>>>> unix socket — отличный вариант, и переделывать ничего не придётся.
>>> Даже в сочетании с mount -o bind? Кто-нибудь ещё вообще так делает?
>> Я знаю что у нас в некоторых случаях используется абстрактный unix
>> сокет, который можно использовать без отражения его на файловую систему.
>> По идее в этом случае не должно возникнуть проблем с mount -o bind.
> Да, уже высказывалось такое предложение (в баге). Но я ещё не знаю, не
> разбирался ещё, как абстрактные сокеты сочетаются с разграничением прав?
> Вдруг к такому сокету любой пользователь сможет подключиться?
>
Конечно любой сможет подключиться. Но, например, X-server с этим как-то
справляется (авторизуя пользователя самостоятельно).
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [devel] Q: Аксакалам IPC
2019-08-23 14:36 ` Dmitry V. Levin
@ 2019-08-23 15:05 ` Leonid Krivoshein
0 siblings, 0 replies; 9+ messages in thread
From: Leonid Krivoshein @ 2019-08-23 15:05 UTC (permalink / raw)
To: devel
23.08.2019 17:36, Dmitry V. Levin пишет:
> On Fri, Aug 23, 2019 at 05:32:29PM +0300, Paul Wolneykien wrote:
>> 23.08.2019 17:26, Anton Farygin пишет:
>>> On 23.08.2019 17:10, Paul Wolneykien wrote:
>>>> 23.08.2019 17:03, Vitaly Lipatov пишет:
>>>>> Paul Wolneykien писал 23.8.19 15:01:
>>>>> Чиним... Взаимодействие через
>>>>> unix socket — отличный вариант, и переделывать ничего не придётся.
>>>> Даже в сочетании с mount -o bind? Кто-нибудь ещё вообще так делает?
>>> Я знаю что у нас в некоторых случаях используется абстрактный unix
>>> сокет, который можно использовать без отражения его на файловую систему.
>>> По идее в этом случае не должно возникнуть проблем с mount -o bind.
>> Да, уже высказывалось такое предложение (в баге). Но я ещё не знаю, не
>> разбирался ещё, как абстрактные сокеты сочетаются с разграничением прав?
>> Вдруг к такому сокету любой пользователь сможет подключиться?
> Конечно, если используется abstract namespace, то разграничения прав
> доступа нет.
К объектам файловой системы -- НЕТ, поскольку namespace другой. Но
поддерживается SCM_CREDENTIALS с pid/uid/gid. Кстати, gid("_alteratord")
всегда отличается в инсталляторе и чруте!
> Реализация на традиционных unix domain sockets работала много лет,
> зачем было её ломать?
Там всегда были рейсы при переключении процесса инсталляции в чрут,
потому что так изначально спроектировали MVC с двумя сокетами в разных
местах, пробрасываемых в разных пакетах и разных скриптах через moint
--bind.
--
Best regards,
Leonid Krivoshein.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [devel] Q: Аксакалам IPC
2019-08-23 12:01 [devel] Q: Аксакалам IPC Paul Wolneykien
2019-08-23 14:03 ` Vitaly Lipatov
@ 2019-08-24 23:45 ` Alexey V. Vissarionov
1 sibling, 0 replies; 9+ messages in thread
From: Alexey V. Vissarionov @ 2019-08-24 23:45 UTC (permalink / raw)
To: ALT Linux Team development discussions
On 2019-08-23 15:01:12 +0300, Paul Wolneykien wrote:
> Всем привет. У меня вопрос к знатокам межпроцессного
> взаимодействия в Linux: какой бы способ соединения вы
> посоветовали использовать для того, чтобы связаться
> снаружи с процессом, который работает внутри чрута?
TCP или UDP на localhost.
> При этом необходим контроль доступа на уровне прав
> пользователей и групп Linux. Если сказать точнее, то
> достаточно будет, если доступ к каналу сможет получить
> только процесс с EUID root.
Работать при CAP_NET_BIND_SERVICE - допустимо? Если да, то
банальный bind() на порт < 1024 вполне решает эту задачу.
> Сейчас это достигается через mount -o bind директории с
> сокетом (unix domain socket) из чрута наружу. И что-то
> иногда идёт не так.
Ой.
--
Alexey V. Vissarionov
gremlin ПРИ altlinux ТЧК org; +vii-cmiii-ccxxix-lxxix-xlii
GPG: 0D92F19E1C0DC36E27F61A29CD17E2B43D879005 @ hkp://keys.gnupg.net
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2019-08-24 23:45 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-08-23 12:01 [devel] Q: Аксакалам IPC Paul Wolneykien
2019-08-23 14:03 ` Vitaly Lipatov
2019-08-23 14:10 ` Paul Wolneykien
2019-08-23 14:26 ` Anton Farygin
2019-08-23 14:32 ` Paul Wolneykien
2019-08-23 14:36 ` Dmitry V. Levin
2019-08-23 15:05 ` Leonid Krivoshein
2019-08-23 14:41 ` Anton Farygin
2019-08-24 23:45 ` Alexey V. Vissarionov
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