Включить совместное использование экрана Gnome через командную строку?

Решение

Вы можете использовать ip netns execс bashвместо использования nsenter, т.е.:

ip netns exec [namespace name] bash

Это позволит вам войти в интерактивный сеанс оболочки, в котором файлы конфигурации сети, относящиеся к пространству имен -, автоматически -привязываются к своим (глобальным )местоположениям по умолчанию (, не затрагивая другие сеансы ). ].

Пояснение

Следующее взято из справочной страницыip netns:

For applications that are aware of network namespaces, the convention is to look for global network configuration files first in **/etc/netns/**NAME/ then in /etc/. For example, if you want a different version of /etc/resolv.conf for a network namespace used to isolate your vpn you would name it /etc/netns/myvpn/resolv.conf.

ip netns exec automates handling of this configuration, file convention for network namespace unaware applications, by creating a mount namespace and bind mounting all of the per network namespace configure files into their traditional location in /etc.

Обратите особое внимание на различие между сетевыми -приложениями, осведомленными о пространстве имен, и сетевыми -приложениями , не осведомленными о пространстве имен .

С другой стороны,nsenterсправочные страницы , кажется, не упоминают об этом различии (, в частности, я искал строки "aware", "resolv", ".conf" и "/ etc" и не нашел результатов ). Похоже, это говорит о том, что утилита nsenterне выполняет такой же автоматической обработки приложений, не знающих пространства имен.

Дополнительные комментарии

В дополнение к Сетевым пространствам имен вы также можете просмотреть Пространства имен пользователей и Пространства имен монтирования . И если вам нужна дополнительная изоляция за пределами DNS, вы также можете рассмотреть возможность контейнеризации, например. Контейнеры LXC , Docker или даже полноценная виртуальная машина.

5
10.05.2020, 19:24
1 ответ

Так что я сделал это, поковырявшись с ним пару часов.

Ваши инструкции верны. Однако GNOME не разрешает подключение VNC , если ваш экран заблокирован . Таким образом, используя loginctl list-sessions, вы можете перечислить свои сеансы. Найдите графический (с идентификатором seat0или похожим )и разблокируйте его с помощью loginctl unlock-session X, где Xпроисходит из столбца IDв list-sessions. Для проверки вы можете loginctl show-session Xи у вас должно быть LockedHint=no. Как только это будет сделано, попробуйте войти через VNC. Для меня это сработало сразу.

Напомню все шаги:

gsettings set org.gnome.desktop.remote-desktop.vnc auth-method 'password'
gsettings set org.gnome.desktop.remote-desktop.vnc view-only false
echo -n 'password' | secret-tool store --label="GNOME Remote Desktop VNC password" "xdg:schema" "org.gnome.RemoteDesktop.VncPassword"
systemctl --user start gnome-remote-desktop.service
loginctl unlock-session $(loginctl --no-legend --value list-sessions | awk '/seat/ { print $1}')

Не нужно было разрешать сетевой интерфейс или что-то еще

4
28.10.2021, 17:06

Теги

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