Pet*_*ner 2 cleanup root gnu-screen
我们正在尝试为那些离开屏幕会话时间过长并且以某种方式或其他方式绕过我们的会话超时的用户重写一个严酷的屏幕会话杀手。
当前的方法是找到屏幕的pid并杀死它,看起来屏幕程序的编写方式可以挂钩其他用户会话,但是当我尝试以root身份执行任何操作时,屏幕目录是不同的目录。猜测这是出于安全原因,但无论如何要故意覆盖它,以便我可以做类似的事情screen -r somedude/33333 -d -X quit?作为根?
标准screen实例是singleuser,即每个实例只能由创建它的用户访问。
要允许多用户screen实例,您可能需要添加以下命令:
multiuser on
addacl root,<user1>,<user2>,...
Run Code Online (Sandbox Code Playgroud)
到您的全局screen配置,即/etc/screenrc.
screen此后的每个实例都应该是多用户的screen,即可以由 中指定的其他用户附加addacl;除非被用户特定的命令覆盖。
您可以列出用户屏幕
multiuser on
addacl root,<user1>,<user2>,...
Run Code Online (Sandbox Code Playgroud)
并附加到另一个用户的屏幕
$ find /var/run/screen -type s
/var/run/screen/S-<user>/<pid>.<tty>.<host>
Run Code Online (Sandbox Code Playgroud)
检查man screen自定义部分以获取更多信息screenrc。
请注意,每个用户还可以screenrc在$HOME/.screenrc文件中添加他们自己的用户特定命令,从而为他们的用户禁用多用户屏幕。