【问题标题】:How do I use GNU Screen transparently如何透明地使用 GNU Screen
【发布时间】:2009-02-02 00:21:15
【问题描述】:

我想以一种用户不知道它存在的方式使用 GNU 屏幕。这是为了帮助确保我正在编写的基于文本的管理应用程序一次只能由一个用户使用。为了防止用户通过运行应用程序并继续运行而将其他人锁在外面,在度假时让它运行,我希望能够分离他们的会话并允许另一个用户附加到它。

所以我的问题是:

  • 我可以将 .screenrc 中的转义键设置为 null,这样用户就不能自己访问屏幕的任何功能了吗?

【问题讨论】:

    标签: null escaping gnu gnu-screen


    【解决方案1】:

    .screenrc 中的以下内容似乎可以解决问题:

    escape ''
    

    这不会将转义字符设置为',而是完全禁用转义机制。

    【讨论】:

    • 使用您的示例,我通过键入 Ctrl-Shift-@(向终端输出 0x00)成功地进入了屏幕的命令模式(或其他模式)。
    • 嗯,我也试过那个按键,但无法成功。这就是为什么我说我不会指望它。 :)
    • 您的更新有效(或者,至少,我找不到启用它的序列)。使屏幕透明的另一个步骤是将 TERM 设置为“屏幕”以外的其他内容。
    • 我建议将您的更新(正确答案)移至帖子顶部,或删除其余内容。
    • 好主意,谢谢。看过以上cmets的有兴趣的可以去看看改版历史。 :)
    【解决方案2】:

    也许只是将.screenrc 中的转义字符设置为 ASCII 表中无法通过键盘键入的晦涩字符。我认为字符 176 将是一个示例(或尝试任何其他超出正常范围的字符):

    escape ^°°
    

    只需将其放在您的 .screenrc 文件中,您的用户将无法访问任何 screen 功能:

    perl -e 'print "escape ^", chr(176), chr(176), "\n"' >> .screenrc
    

    【讨论】:

    • 0x7F(删除字符)怎么样?
    • 您仍然可以键入任意 ASCII 字符,使用 Alt+nnn 或复制和粘贴。包括 chr(0x7F)。
    • @Hewgill,你可以在普通终端上使用 Alt+nnn 吗?
    • @Hewgill,首先,他们甚至不知道有这样一个角色。第二,就算他们知道字符,你能不能把 Alt+nnn 和 Ctrl 一起做?
    • @strager:这个问题没有提到“平均终端”。我将这个问题解释为人们将通过 Putty 或其他终端模拟器之类的东西从他们的普通 PC 工作站访问应用程序。
    【解决方案3】:

    阻止用户使用 Screen 的功能是不好的形式(除非你有一个共享登录来运行你的应用程序)。

    相反,让您的应用程序处理您通过自动注销显示的用例、警告新连接用户并让他们选择启动其他用户、处理多个用户等。

    【讨论】:

      【解决方案4】:

      考虑使用分离/附加,而不是使用屏幕

      【讨论】:

        猜你喜欢
        • 2010-11-07
        • 1970-01-01
        • 1970-01-01
        • 2020-12-04
        • 1970-01-01
        • 2012-08-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多