Разрешить доступ к консоли Linux

8

Предположим, кто-то запускает SSHсеанс в GNU/Linuxокне клиента и просит вас посмотреть «что вы делаете». Как вы можете позволить этой другой стороне видеть, что происходит в вашей сессии?

автопрокладчик
источник

Ответы:

12

Вы можете попробовать использовать команду « screen ». Это позволит вам запустить многопользовательский сеанс, к которому 2 пользователя могут подключаться и делиться. Сначала вам нужно установить бит suid. экран поставляется с выключенным, и это необходимо для многопользовательского режима:

sudo chmod +s /usr/bin/screen
sudo chmod 755 /var/run/screen

Первый пользователь подключиться, работает

screen -S shared

«-S» просто дает сессии простое в использовании имя. Чтобы разрешить многопользовательский доступ, используйте «CTRL + A» для запуска экранных команд:

CTRL+A
:multiuser on
:acladd otheruser

Когда другой пользователь подключается через ssh, ему просто нужно запустить

screen -x firstuser/shared

присоединиться к сессии

katriel
источник
2
Если одна из сторон может использовать ее, su/sudoчтобы стать другим пользователем, вам вообще не нужно связываться с setuid или разрешениями. Просто используйте su, чтобы обе стороны использовали одну и ту же учетную запись. Первый пользователь запускается screen, а затем запускается screen -x.
Зоредаче
Это не указано явно в ответе, но второй пользователь может видеть только то, что выполняется в сеансе экрана; т.е. первый пользователь должен запустить экран, прежде чем делать "интересный" бит. Также, если размеры терминала не совпадают, опыт второго пользователя может быть ... интересным.
Дэвид Макинтош
@zoredache: таким образом вы можете столкнуться с проблемами с разрешениями tty
ptman
2

Работал как шарм.

Я также получил офлайн подсказку от парня, с которым я поболтал, предлагая альтернативное решение:

Пользователь, желающий поделиться, использует "w", чтобы посмотреть, где работает другой парень ...

# w
 16:27:10 up 30 days,  8:37,  3 users,  load average: 0,99, 0,94, 0,89
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
root     tty1     -                26Apr10  9days  0.04s  0.01s login -- root
root     pts/0    192.168.2.25     15:31   54:29   0.04s  0.00s script
root     pts/1    192.168.2.235    16:21    3:29   0.05s  0.05s -bash

теперь, когда мы работаем, мы выпускаем это:

# script | tee /dev/pts/1 

Этот метод имеет недостатки по сравнению с тем, который предлагает katriel, так как он только один, и если вы забудете использовать выход для разрыва соединения, другие pts продолжат получать данные, даже если пользователь выходит из него, что является потенциальной угрозой безопасности. Но я думал, что это стоит упомянуть.

В любом случае, благодаря Катриэлю и остальным.

ÜMineiro
источник
1

Просто запустите VNC-сервер на своей рабочей станции и дайте ему подключиться к этому. Дешево и просто :)

apenwarr
источник
VNC подходит для сеансов X, но не для консольного сеанса.
Кристиан Чиупиту
Если ваш ssh-клиент запускается из X-сессии, то это не проблема.
apenwarr
1

У меня есть небольшой проект с открытым исходным кодом, который (я надеюсь) полностью удовлетворяет эту потребность: Termbeamer .

Он позволяет начать сеанс терминала и отправить его одному или нескольким другим пользователям через Интернет. Он работает из-за межсетевых экранов и NAT и имеет опцию удаленного управления, если вы хотите, чтобы другой человек "водил" - хорошо для парного программирования.

Бенджи Йорк
источник
0

У Apenwarr есть хорошее предложение, но я недавно использовал TeamViewer именно для этой цели. Это похоже на VNC, но требует установки НУЛЯ на обоих концах. Не требуется установка сервера, не требуется установка клиента. Это даже делает обход NAT без конфигурации ... что-то, что VNC не может сделать.

http://teamviewer.com/

Попробуйте, вы влюбитесь.

fsckin
источник
Кроме того, это стоит миллион долларов.
apenwarr
Также работает под Wine, который работает под X.
Wranorn