Экран GNU многопользовательский режим повреждается в OS X 10.6 (Snow Leopard)

Я использую экран GNU для удаленного парного программирования. Давайте назовем локальный счет на удаленного пользователя 'pairpair'. У меня есть следующие строки в моем .screenrc:

multiuser on
acladd pairpair

Я работал sudo chmod u+s /usr/bin/screen. Однако, когда удаленный пользователь пытается соединиться с моим экраном с командой screen -r [my_account_name]/[pid_of_screen] Я получаю следующее сообщение:

Attach attempt with bad pid(xxx)

Pid, перечисленный в сообщении об ошибке, соответствует pid экранного процесса, выполненного удаленным пользователем. Экранный процесс удаленного пользователя зависает; моя экранная сессия продолжается счастливо вперед после того, как сообщение об ошибке исчезнет.

Я попытался использовать обоих встроенное screen/usr/bin/screen) и screen доступный от MacPorts, но я получаю ту же ошибку в обоих случаях.

Это работало над OS X 10.5 (Leopard).

Я погуглил вокруг для сообщения об ошибке, но большинство хитов касается некоторой ошибки BSD приблизительно от 2003 (который был зафиксирован). Кто-либо еще видел это поведение? У кого-либо есть какая-либо идея, как сделать многопользовательскую поддержку в экранной работе в SL?

7
задан 08.10.2010, 22:42

3 ответа

Я использую сервер Snow Leopard, и я использую многопользовательский экран без проблем - я использую exec screen -xRR в моем .profile к экрану "Пуск", скорее затем с помощью явного PIDs.

Это работает на Вас? Раз так это - проблема с синтаксисом PID, скорее затем многопользовательский экран сам

1
ответ дан 07.12.2019, 15:08

Я использую screen для удаленного парного программирования. Мы попробовали некоторые решения для демонстрации экрана как iChat, Skype и VNC. Для совместного использования текста это - немного излишества для отправки пикселей (и жесткий, чтобы читать и записать удаленно), особенно когда Интернет-соединения облуплены.

Поскольку существует большое доверие, подразумеваемое в паре уже, программирующей (и то, что у нас есть общий компьютер), ситуация имеет обходное решение:

  1. Сделайте общую учетную запись пользователя (например, "соединившись")
  2. Дайте той учетной записи права администратора
  3. Добавьте открытые ключи для пользователей, с которыми я был бы удаленная пара

Удаленные пользователи могут теперь SSH в и присоединяться к экранной сессии.

Благодаря wwalker в #screen на irc.freenode.net для справки.

0
ответ дан 07.12.2019, 15:08

Я не знаю, видите ли Вы все еще это, но я.

Экран использует вызов для уничтожения () с нулем сигнала для проверки PIDs. Причина проблемы состоит в том, которые уничтожают (), неожиданно провально с errno EPERM. Это должно только произойти, если UID и EUID обработки вызовов являются ненулевыми и не соответствуют UID и EUID целевого процесса, соответственно.

В данном случае, UID двух рассматриваемых процессов отличаются, и наследованные EUID обоих процессов являются нулем. Это было бы прекрасно, но как часть проверки работоспособности PID, EUID обоих процессов установлен на UID, который владеет экранной сессией. В этом конкретном сценарии, даже при том, что оба EUIDs являются тем же, уничтожают (), все еще перестал работать с errno EPERM.

Я зарегистрировал ошибку 8965041 по bugreport.apple.com. Надо надеяться, это - корректная авеню, чтобы иметь, это зафиксировало.

Тем временем я работаю вокруг проблемы путем компиляции моего собственного экранного двоичного файла, где я вынудил CheckPid () возвратиться 0.

4
ответ дан 07.12.2019, 15:08

Теги

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