Подключение с D-шиной в сетевом пространстве имен

Вот то, как Вы фиксируете это. Произведите свой Список контактов, под Инструментами выбирают Preferences затем вкладка "Interface" затем под "Окном Разговора", Вы найдете, Скрывают новые переговоры IM. Установите его на "Всегда". (Вы могли бы испытать затруднения, замечающие новые сообщения, но я думаю, что это - цель), Это должно влиять на все учетные записи.

6
15.02.2015, 17:32
2 ответа

Сетевое пространство имен Linux охватывает только сетевые ресурсы, такие как стеки IPv4 и IPv6, сетевые интерфейсы, IP-адреса, IP-маршруты и т. д. Но сокеты unix не относятся к сетевым пространствам имен. Сокеты используют файловую систему в качестве адресного пространства , поэтому они связаны, если можно так назвать, с монтированием пространств имен для доступа к ним через файловую систему. Тем не менее, вы можете передавать сокеты unix через файловые дескрипторы, даже если общие точки монтирования недоступны.

Следовательно, связь DBus не относится к сетевым пространствам имен Linux и не зависит от них. Таким образом, нет никакого способа получить доступ к DBus из сетевого пространства имен (, потому что это неприменимо ).

-2
27.01.2020, 20:29

Сетевое пространство имен Linuxip -netns действительно отделяет сокет unix, и поскольку его использует dbus, он недоступен из нового пространства имен, мы могли бы представить функцию, которая оставила бы доступ к сокету unix, но это не реализовано по состоянию на 05/2019. Сокет Unix можно просмотреть с помощьюnetstat -a -p --unix

Альтернативное решение с использованием socatдля проксирования сокета dbus, это подробно описано в этом ответе и здесь

Альтернативное решение в зависимости от необходимой связи с dbus можно создать новый экземпляр сеансовой шины с помощью dbus -запустить из пространства имен с помощью dbus-launch my-command-or-appобратите внимание, что можно использовать и другие способы например dbus -запустить -сеанс

Альтернативное решениеnetns -exec может запускать приложение/команду в пространстве имен без root-доступа (аналогично тому, что firejail может делать ), но он также может проксировать dbus с помощью socat, как и первое решение, автоматически и без root-доступа.

Альтернативное решениеxdg -dbus -прокси также может выполнять эту работу без рута и с множеством дополнительных опций, таких как фильтрация...это может быть лучшим вариантом с точки зрения безопасности, если вы хотите разрешить доступ к одному местоположению dbus, это приложение начинает распространяться в основных дистрибутивах, поскольку оно является частью firejail, поэтому сборка из исходного кода может не потребоваться, человек страницу можно найти здесь или просто man xdg-dbus-proxy, если приложение установлено, вот как его использовать:

На хосте:xdg-dbus-proxy $DBUS_SESSION_BUS_ADDRESS /tmp/proxybusилиxdg-dbus-proxy $DBUS_SESSION_BUS_ADDRESS /tmp/proxybus --filter --talk=org.foo.bar --see=org.gtk.* --own=org.my.name

И на пространстве имен:DBUS_SESSION_BUS_ADDRESS=unix:path=/tmp/proxybus app-using-dbus

4
27.01.2020, 20:29

Теги

Похожие вопросы