允许访问Linux控制台


8

假设有人正在一个客户端SSHGNU/Linux盒子中运行会话,他要求您查看“您在做什么”。您如何允许另一方查看您的会话中发生了什么?

Answers:


12

您可以尝试使用“ screen ”命令。这将允许您运行一个多用户会话,两个用户可以连接并共享。首先,您需要设置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

参加会议


2
如果任何一方都可以用来su/sudo成为另一位用户,那么您根本不需要弄乱setuid或权限。只需使用su,以便双方都使用相同的帐户。第一个用户运行screen,然后运行screen -x
Zoredache

答案中没有明确说明,但是第二个用户只能看到屏幕会话中正在运行的内容。也就是说,第一个用户在执行“有趣”位之前必须正在运行屏幕。同样,如果终端大小不匹配,第二个用户的体验可能会很有趣。
David Mackintosh,2010年

@zoredache:那样,您可能会遇到tty权限问题
ptman 2010年

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也会继续接收数据,这是潜在的安全威胁。但是我认为这值得一提。

无论如何,要感谢katriel和其他人。


1

只需在您的工作站上运行VNC服务器,然后让他连接即可。便宜又容易:)


VNC适用于X会话,但不适用于控制台会话。
Cristian Ciupitu

如果您的ssh客户端是从X会话启动的,那么没问题。
apenwarr 2010年

1

我有一个小型的开源项目(希望)可以完美满足这一需求:Termbeamer

它使您可以启动终端会话,并将其发送到Internet上的一个或多个其他人。它可以在防火墙和NAT后面运行,并且如果您想让其他人“开车”,则可以使用远程控制选项-非常适合配对编程。


0

Apenwarr有一个很好的建议,但我最近为此使用了TeamViewer。它类似于VNC,但两端都需要零位安装。无需服务器安装,无需客户端安装。它甚至无需配置即可进行NAT遍历……这是VNC无法做到的。

http://teamviewer.com/

试试吧,你会坠入爱河。


而且,它花费了数不胜数的美元。
apenwarr 2010年

还可以在X下运行的Wine下运行
。– Wranorn
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.