如何在单个终端上快速切换用户?

如何在单个终端上快速切换用户?

我想切换到另一个用户而不注销第一个用户,然后以第三个用户身份登录而不注销其他两个用户,依此类推,然后在所有用户之间快速切换。显然,我只想为每个用户插入一次密码。

是否有类似的方法可以像进程一样执行此操作,我可以根据需要使用 ctrl-z 和 fg 将它们发送到后台和前台?

答案1

使用su <user>,可选地与-选项(也称为-l--login)一起使 shell 充当登录 shell(不同的初始化)。

您无法真正将其发送到后台,因为该用户的 shell 捕获用于将其移动到后台并退出的 SIGTSTP 信号(通常)。相反,您可能对终端多路复用器感兴趣,例如tmux或者screen

您可能还想使用vlock当您长时间不使用控制台时。

答案2

斯蒂芬·查泽拉斯写道:

您不能使用Ctrl+暂停Z,但可以使用suspend内置函数暂停(或者kill -s STOP "$$"如果您的 shell 没有这样的内置函数)。

非常感谢,这看起来很有魅力。当我以另一个用户身份登录后,挂起会将 shell 发送到后台,并将控制权返回给前一个用户的 shell。然后我就可以fg像恢复任何其他工作一样使用它。

据我所尝试,它甚至似乎可以与两个以上的用户一起使用(由于它是登录外壳ssh而暂停)。~^z毕竟不需要使用像屏幕这样的终端多路复用器。

答案3

一种可能的方法是使用 screen 或 tmux 等程序

创建一个名为 foo 的新屏幕

screen -S foo   

创建另一个屏幕

ctrl+ a+ c

在它们之间切换

ctrl+ a+ a

或者按 shell 的编号跳转到该 shell

ctrl+ a+ 1

您可以查看所有打开屏幕会话的名称/数量,如下所示:

ctrl+ a+ w

这些将是 3 个独立的 shell,但它们都位于 1 个终端内。

相关内容