![如何在不使用 VNC 的情况下与同事共享 shell?](https://linux22.com/image/16271/%E5%A6%82%E4%BD%95%E5%9C%A8%E4%B8%8D%E4%BD%BF%E7%94%A8%20VNC%20%E7%9A%84%E6%83%85%E5%86%B5%E4%B8%8B%E4%B8%8E%E5%90%8C%E4%BA%8B%E5%85%B1%E4%BA%AB%20shell%EF%BC%9F.png)
很多时候,我希望我的同事看一下我系统上的一些代码。他主要会在空闲时间做这件事,并且需要以我的身份登录。
有没有办法让我像我一样打开一个新的shell,然后转移给他的机器上的 shell,以便他可以随时使用它?
答案1
我会考虑用它screen
来做到这一点。尽管如此,我所知道的唯一方法确实会产生一些安全问题。 Screen 能够创建访问控制列表,并能够允许具有各种权限的多个屏幕会话。设置可能有点棘手,但想法是这样的:
- 为您的同事创建一个用户帐户。
- 让您的同事 ssh 访问您的计算机。
- 使屏幕可执行 setuid root (危险的)。
- 将权限更改为
/var/run/screen
755(其他权限设置可能是可行的,这就是我一直做的。另外,这是Debian上的路径,我不确定其他地方是否不同) 编辑您的
~/.screenrc
以启用多用户模式:multiuser on
使用以下命令编辑您的
~/.screenrc
设置正确的权限:acladd
、aclchg
和aclgrp
。有关详细信息,请参阅手册页。
然后,您的同事可以通过 ssh 登录您的计算机并连接到您的屏幕会话。通过ssh
配置,您实际上可以强制他在登录时连接到屏幕会话。以下博客文章在使用屏幕举办课程的上下文中提供了更详细的说明(这些说明大致基于它们):
http://blog.dustinkirkland.com/2009/04/teaching-class-with-gnu-screen.html
您的用例有点不同,但我认为唯一真正的区别是您设置的权限~/.screenrc
和用户名。
答案2
screen -x
应该是最简单的解决方案。