跳转到内容

锁定桌面自助终端

桌面自助终端应用会阻止自身可以控制的操作。对于无人值守的公共自助终端,还必须应用操作系统级配置文件,阻止桌面应用无法控制的退出方式。

作为自助终端客户端启动时,桌面应用:

  • 以无边框全屏打开,覆盖整个显示区域,包括菜单栏条。
  • 在 macOS 上,通过原生 NSApplicationPresentationOptions (.hideMenuBar | .hideDock)隐藏菜单栏和程序坞,并在应用每次重新获得焦点时再次隐藏。
  • 在 macOS 上通过 AWT QuitHandler 阻止 ⌘+Q(以及应用菜单中的”退出”)。
  • 尝试抑制其他常见快捷键 — Alt+F4、⌘+W、Alt+Tab、⌘+Tab、Windows/Super 键、F11 和 Escape — 针对那些操作系统在自行处理之前先传递给应用的快捷键。
  • 退出受管理员 PIN 保护。管理员菜单通过右上角五次快速点按(触摸屏)或五次 F12 按键(硬件键盘)打开,PIN 输入有暴力破解锁定。监督操作员在首次运行时设置 PIN。完整操作员流程(包括 PIN 找回)见退出自助终端锁定并找回 PIN。

服务台应用不锁定 — 它是员工工具,保留正常的窗口控件。

Windows — Assigned Access / Shell Launcher

Section titled “Windows — Assigned Access / Shell Launcher”

Windows 提供两种自助终端机制。桌面自助终端是经典的 Win32 桌面应用,因此 Shell Launcher 是合适的选择 — Assigned Access(单应用自助终端)只接受 UWP/MSIX 应用或 Microsoft Edge。

Shell Launcher v2 为指定账户用 Jonot 自助终端可执行文件替换默认 Windows shell(explorer.exe)。没有 Explorer shell 就没有桌面、开始菜单或任务栏;如果应用退出,Shell Launcher 会重启它。需要 Windows 10/11 Enterprise、Education 或 IoT Enterprise。

  1. 启用 Shell Launcher 可选功能(Enable-WindowsOptionalFeature -Online -FeatureName Client-EmbeddedShellLauncher),或从您的 MDM 推送。
  2. 为自助终端创建一个专用的**标准(非管理员)**本地账户。
  3. 配置 Shell Launcher,将该账户的自定义 shell 设为 Jonot 自助终端启动器,并带退出后重启操作 — 通过 MDM 的 Shell Launcher CSP,或本地使用 Shell Launcher 指南中记录的 WMI 桥接 PowerShell 示例。
  4. 将自助终端账户设为自动登录,并禁用锁屏、睡眠和快速用户切换。

如果没有 Enterprise 许可证,并且设备始终有人监管, Assigned Access”自助终端浏览器” 可以直接打开 https://kiosk.jonot.io。它在 Edge 中运行 Web 应用,不支持本地打印或离线主机切换。只有不需要这些原生功能时才使用此方式。

macOS — 操作系统级防逃逸操作手册

Section titled “macOS — 操作系统级防逃逸操作手册”

应用在应用侧隐藏菜单栏和程序坞并阻止 ⌘+Q。操作系统级配置文件覆盖应用无法关闭的路径:强制退出、调度中心、Spaces 切换、热角、Spotlight 和应用切换。

使用带自动登录的专用受管或受限账户。 从 MDM(Jamf Pro、 Kandji、Mosyle 或 Intune)部署:

  1. 专用标准账户 + 自动登录。 创建一个仅用于自助终端的非管理员本地账户。为该账户启用自动登录,并用能源配置文件禁用系统睡眠。Managed Login Items 负载确保自助终端应用会在会话开始时启动。

  2. 禁用强制退出(⌘+⌥+Esc)。 强制退出是应用无法阻止的主要逃逸路径。用 com.apple.loginwindow 的自定义托管首选项负载禁用它:

    DisableForceQuitCombinedKey = true
  3. 禁用调度中心和 Spaces 切换。 使用 com.apple.symbolichotkeys 禁用调度中心快捷键(键 32)和 Spaces 切换快捷键(键 79–81、118–123)。

  4. 禁用热角。 推送 com.apple.dock 首选项负载,将全部四个 wvous-*-corner 键设为 0(禁用)。

  5. 禁用 Spotlight。 通过 com.apple.symbolichotkeys 禁用 Spotlight 键盘快捷键(Spotlight 搜索为键 64)。注意:标准 Restrictions 负载的 Spotlight 键只抑制互联网结果,不抑制 Spotlight 本身 — 请改用 symbolichotkeys 方式。

  6. 禁用应用切换(⌘+Tab)。 通过 com.apple.symbolichotkeys 禁用应用程序切换器快捷键(键 27)。

在 Linux 上,请使用专用的 GNOME Kiosk 会话,将 Jonot 自助终端作为唯一窗口运行。此会话没有面板、活动概览或应用切换器。

  1. 安装 gnome-kiosk 软件包(在较新的 Fedora 和 Debian/Ubuntu 发行版上可用)。它提供一个最小 Wayland 合成器,运行一个全屏应用。
  2. 创建一个自定义会话,以 Jonot 自助终端可执行文件作为其 shell 命令启动,使自助终端应用就是该会话。
  3. 为专用标准用户配置 GDM 自动登录,登录到该自助终端会话。
  4. 加固周围系统:禁用 VT 切换和 Ctrl+Alt+Backspace,在 logind 中阻止 TTY 访问,并禁用自动屏幕熄灭和电源管理。

GNOME Kiosk 合成器不显示切换器或概览,因此用户无法在会话中打开其他应用。操作系统会直接强制执行此限制。

层防护对象
应用内锁定菜单栏/程序坞(macOS)、⌘+Q、意外退出、进程内可捕获的快捷键
操作系统级自助终端配置文件强制退出、调度中心、Spaces、热角、Spotlight、操作系统级应用切换
物理外壳硬件访问 — USB 端口、电源按钮、键盘

无人值守的公共部署始终同时运行应用内锁定和操作系统级配置文件。物理外壳是完全防篡改部署的第三层。