Bootstrap

Linux下两个远程登陆用户如何共享同一个登陆shell

Linux下两个远程登陆用户如何共享同一个登陆shell,以实现远程教育或远程协助
在Linux下,有一个基于expect的工具:kibitz可以实现两个登陆用户(可以是同一个用户,例如root但是通过不通的终端登陆的)。因此首先要保证linux安装有tcl和expect两个rpm包。
安装完以后就会发现系统已经有kibitz这个命令了:
[root@mail root]# whereis kibitz
kibitz: /usr/bin/kibitz /usr/share/man/man1/kibitz.1.gz
首先发起共享shell请求乙方输入 w 来察看当前登陆用户:
[root@mail root]# w
17:16:32  up 3 days,  9:00,  2 users,  load average: 0.45, 0.37, 0.35
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU  WHAT
root     pts/0    219.237.180.135   5:04pm 10.00s  0.04s  0.01s  w
root     pts/1    219.237.180.135   5:15pm  0.00s  0.04s  0.01s  /bin/bash
可以看到发起一方的登陆终端为 pts/0,另外一方为 pts/1
这时候,发起一方运行 :
[root@mail root]# kibitz -tty pts/1 root
asking root to type:  kibitz -11946
Escape sequence is ^]
在被邀请一方的终端上会出现以下提示:
[root@mail root]#
Message from root@mail on pts/0 at 17:16 ...
Can we talk? Run: kibitz -11946
EOF
被邀请方在终端输入:
#kibitz --11946
即可实现双方共享同一个shell,无论哪方希望退出, 只需要输入 exit即可退出共享的shell终端。

 

注意:

需要安装expect-dev才有kibitz包, sudo apt-get install expect-dev

一个用户使用screen -S socketname, 另一个同名的user使用screen -x socketname打开,这样同样可以两个远程用户共享一个shell,但是限制就是是两个用户,必须使用同一个用户名。


                
               

;