共享终端会议与Tmux和屏幕
tmux和GNU Screen是众所周知的实用程序,允许虚拟控制台复用。 使用这两种方式,可以启动会话,分离,移动到不同的机器,并在不间断的进行中恢复会话。 也可以使用这些工具在同一时间在多个用户之间共享单个会话。
使用单一帐户进行基本共享
如果两个或多个用户之间共同持有帐户,则终端控制台的共享非常简单。 在多次登录的单个帐户之间,tmux和屏幕都不需要任何普通的基本共享。 如果您以同一用户身份登录,则基本共享非常简单。
基本共享屏幕
在一个终端中创建一个新的屏幕会话,其中foobar是屏幕会话的名称:
screen -S foobar
然后在另一个终端,附加到该会话。
screen -x foobar
就这样,只有两个步骤。
与tmux基本共享
再次,只有两个步骤。 在第一个终端中,启动tmux,其中shared是会话名称:
tmux new-session -s shared
然后在第二个终端附加到共享会话。
tmux attach-session -t shared
而已。
两种账户之间的共享
两个不同帐户之间的共享需要一些额外的步骤来授予一个帐户访问另一个会话所需的权限。 在某些情况下,系统管理员需要帮助才能准备安装程序。
在tmux之间共享两个不同的账户
对于不同的用户,您必须在tmux套接字上设置权限,以便两个用户都可以读写。 只有一个先决条件,两个用户之间有一个共同点。 如果这样一个组不存在,就有必要创建一个组。
在第一个终端中,启动tmux,其中shared是会话名称, shareds是套接字的名称:
tmux -S /tmp/shareds new -s shared
然后将套接字编
入两个用户共享的组。 在这个例子中, joint是两个用户共享的组。 如果组中有其他用户,则他们也可以访问。 所以可能建议该组只有两个成员。
chgrp joint /tmp/shareds
在第二个终端附加使用该套接字和会话。
tmux -S /tmp/shareds attach -t shared
而已。 会话可以为第二个用户只读,但仅在自愿的基础上。 当第二个用户附加到会话时,做出只读工作的决定。
tmux -S /tmp/shareds attach -t shared -r
在两个不同的帐户之间共享屏幕
如果您以两个不同的用户身份登录,则使用屏幕有三个先决条件。 首先,屏幕必须设置为SUID ,并且需要从/ var / run / screen
中删除组写访问。 在这种情况下使用SUID的安全性是值得考虑的。 那么你必须使用屏幕的ACL来授予第二个用户的权限。
sudo chmod u+s /usr/bin/screen
sudo chmod 755 /var/run/screen
在第一个用户的终端中,按照上面的基本共享开始屏幕,其中foobar是屏幕会话的名称。 然后打开多用户模式,并将user2添加到ACL中 ,其中user2是要共享会话的第二个帐户。
screen -S foobar
^A:multiuser on
^A:acladd user2
可以通过输入以下ACL更改,为第二个用户创建会话为只读: ^ A:aclchg user2 -w“#?”
然后在另一个终端,附加到第一个用户的会话。
screen -x user1/foobar
也可以将多用户打开
并将acladd user2
插入到.screenrc
中,使其在启动屏幕时自动生效。 如果在所有屏幕会话中不需要更改,则可以在启动屏幕时使用-c
选项指定单独的.screenrc
配置文件。
事后考虑
退出时要小心 如果你刚刚退出shell,它将结束所有各方的终端会话。 如果您分离会话,则其他用户可以继续工作不间断。 在tmux中是^ Bd
,在屏幕中是^ Ad