与多个用户共享终端(带屏幕或其他方式)


11

我正在设置一台服务器,其中有多个开发人员在多个应用程序上工作。

我已经弄清楚了如何使用和为某些开发人员提供对必要应用程序目录的共享访问权,setgid bitdefault ACLs为组中的任何人提供访问权限。

这些应用程序中有许多在开发过程中都在终端下运行,以便于访问。当我独自工作时,我为应用程序设置了一个用户,并以该用户身份运行屏幕。不利之处在于,每个开发人员都需要使用screen session需要知道密码的密码,并且很难将用户帐户和应用程序帐户分开。

一种可行的方法是使用屏幕多用户功能。他们不能立即使用,但是屏幕抱怨需要suid root。给它带来任何负面影响吗?我对使用suid root任何东西都非常小心。也许有一个为什么它不是默认值的原因?

我应该这样做screen还是有其他一些明智的方式来做我想做的事情?

Answers:


24

是的,您可以通过screen具有多用户支持的功能来做到这一点。

首先,创建一个新会话:

screen -d -m -S multisession

附加到它:

screen -r multisession

打开多用户支持:

按下Ctrl-a并输入

:multiuser on
:acladd USER ← use username of user you want to give access to your screen

现在,Ctrl-a d并列出会话:

$ screen -ls
There is a screen on:
    4791.multisession   (Multi, detached)

您现在有一个多用户屏幕会话。将名称提供multisession给所有用户,以便他可以附加该名称:

screen -x youruser/multisession

就是这样。

唯一的缺点是screen必须以suidroot 身份运行。但据我所知,这是默认的正常情况。

另一种选择是做screen -S $screen_id -X multiuser onscreen -S $screen_id -X acladd authorized_user

希望这可以帮助。


1
这是我尝试过的,直到屏幕上抱怨需要suid root。我弄清楚,在向没有默认权限的程序添加根权限之前,我想问这是否是首选的处理方法
varesa 2014年

奇怪。我screensuid根。
2014年

我认为这可能与发行版有关。我尝试使用CentOS 6或7(需要检查)
varesa 2014年

值得一提的screen是,suid root在Ubuntu 16.04上也不是。
icedwater

6
screen -S $screen_id -X multiuser onscreen -S $screen_id -X acladd authorized_user 而不是control-a命令将是一个很好的答案
ribamar
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.