var*_*esa 19 gnu-screen multiuser
我正在设置一个服务器,其中有多个开发人员在处理多个应用程序。
我已经想出了如何使用setgid bit
和default ACLs
为组中的任何人提供对必要应用程序目录的共享访问权限。
许多这些应用程序在开发过程中都在终端下运行,以便于访问。当我独自工作时,我为应用程序设置了一个用户并以该用户身份运行屏幕。这样做的缺点是每个开发人员都screen session
需要知道密码,而且很难将用户和应用程序帐户分开。
一种可行的方法是使用屏幕多用户功能。然而,它们不能开箱即用, screen 抱怨需要suid root
. 给予有什么缺点吗?我对使用suid root
任何东西都非常小心。也许有一个原因为什么它不是默认的?
我应该用它来做screen
还是有其他一些聪明的方式来做我想做的事?
Scy*_*aud 32
是的,您可以使用screen
多用户支持来实现。
首先,创建一个新会话:
screen -d -m -S multisession
Run Code Online (Sandbox Code Playgroud)
附上它:
screen -r multisession
Run Code Online (Sandbox Code Playgroud)
开启多用户支持:
按下Ctrl-a
并输入(注意:Ctrl+a
在每个命令之前都需要,即这里需要两次)
:multiuser on
:acladd USER ? use username of user you want to give access to your screen
Run Code Online (Sandbox Code Playgroud)
现在,Ctrl-a d
列出会话:
$ screen -ls
There is a screen on:
4791.multisession (Multi, detached)
Run Code Online (Sandbox Code Playgroud)
您现在有一个多用户屏幕会话。将名称提供multisession
给 acl'd 用户,以便他可以附加到它:
screen -x youruser/multisession
Run Code Online (Sandbox Code Playgroud)
就是这样。
唯一的缺点是screen
必须以suid
root身份运行。但据我所知是默认的,正常的情况。
另一种选择是做screen -S $screen_id -X multiuser on
,screen -S $screen_id -X acladd authorized_user
希望这可以帮助。