1

У меня экран GNU работает в контейнере LXC, таким образом, имеет личное пространство имен PID. Я пытаюсь прикрепить к этому экрану "снаружи" пространство имен. Оба экрана совместно используют файловую систему, поэтому имеют доступ к одному и тому же сокету. "Внешний" screen -ls перечисляет сессию правильно, но попытка присоединиться с помощью screen -x не удалась с « Попытка присоединения с неверным pid(XXX)!"сообщение на исходном экране, работающем внутри контейнера lxc. Экран внешнего" атакующего "ждет 15 секунд и завершается с" Внезапно темница разрушается! " - Вы умираете ... "и 1 как код ошибки.

"Внешний" атакующий может удаленно отсоединять экран с помощью screen -d но все равно имеет тайм-аут 15 с и ошибку "Свернуть". "Внешний" атакующий может без проблем выполнять команды с screen -X . Однако screen -Q передает команду на рабочий экран, затем зависает и ждет Ctrl+C, оставляя суффикс мертвого сокета -queryA в /var/run/screen/ .

Естественно, что "внутренний" экран не может видеть "внешний", поскольку он не разделяет пространство имен pid. Можно ли отключить проверку PID на экране? Зачем нам нужна эта проверка при подключении к экрану в любом случае? Разве недостаточно доступа к сокету, чтобы экраны могли нормально общаться друг с другом?

Обновление: Я отправил запрос на лист рассылки screen-devel через отчет об ошибке # 35324.

0