我们正在尝试为那些屏幕会话持续时间过长并且以某种方式绕过我们的会话超时的用户重写一个严厉的屏幕会话终止程序。
当前的方法是找到 screen 的 pid 并终止它,screen 程序的编写方式似乎可以挂接到其他用户会话中,但当我尝试以 root 身份执行任何操作时,screen 目录是另一个目录。我猜这是出于安全原因,但有没有办法故意覆盖它,以便我可以像 ? 一样screen -r somedude/33333 -d -X quit
以 root 身份执行某些操作?
答案1
标准screen
实例是singleuser
,即每个实例只能由创建它的用户访问。
为了允许多用户screen
实例,您可能需要添加以下命令:
multiuser on
addacl root,<user1>,<user2>,...
到您的全局screen
配置,即/etc/screenrc
。
screen
此后的每个实例都应是多用户的screen
,即可以由中指定的另一个用户附加addacl
;除非被用户特定的命令覆盖。
您可以使用以下方式列出用户屏幕
$ find /var/run/screen -type s
/var/run/screen/S-<user>/<pid>.<tty>.<host>
并将其附加到另一个用户的屏幕上
$ screen -d -r <user>/<pid>
查看man screen
,有关 的更多信息,请参阅定制部分screenrc
。
请注意,每个用户也可以在文件中添加他们自己的用户特定screenrc
命令$HOME/.screenrc
,从而禁用其用户的多用户屏幕。