使用 BASH 确定是否从 SSH 启用 X11 转发

Joh*_*ohn 4 bash ssh x11

通过 SSH 登录网络后,使用的网络默认 shell 是 BASH。
只有在启用 X11 转发时才可以运行使用图形的应用程序,我通常-X在登录时通过该选项执行此操作:

ssh -X user@network.to.connect.to

我注意到当它被启用时 DISPLAY 环境变量存在并被设置为这样DISPLAY=localhost:11.0,但是没有什么能阻止用户导出一个名为相同事物的环境变量,使它看起来好像已经被启用。

有没有办法从 bash shell 或 bash 脚本来确定是否启用了 X11 转发?

Dom*_*k R 6

首先,为什么?为什么用户应该伪造 DISPLAY?不过,我看到了两种解决方法:

  1. readonly DISPLAY在 bashrc/配置文件中。如果在登录时执行,用户将无法在之后设置 DISPLAY。
  2. xset q. 查询一些 X11 信息。如果不存在 X11 会话,则返回错误