我想创建一个 C++ 应用程序,该应用程序将在特定笔记本电脑上的某个 Linux 平台上运行。但是,我不希望这台笔记本电脑的用户使用除此程序之外的任何其他应用程序/系统功能 - 就像您在典型的网吧电脑上看到的自助服务终端模式一样。
一个问题是笔记本电脑将由用户启动,因此必须自动启动我的软件 - 尽可能减少用户干预过程的空间。它不必完全安全,但应该尽可能接近安全。
完成这样的事情的最佳方法是什么?是否存在专门为此制作的(免费)Linux 发行版(如果没有,我可能会使用 Arch Linux)?我可以/应该在我的程序中采取什么步骤吗,或者我可以把一切都留给操作系统吗?为此专门创建我自己的小型 Linux 发行版是否值得?
答案1
你可能正在寻找萨芭雍:
Sabayon 是一个系统管理工具,用于定义和部署 GNOME 桌面环境的桌面配置文件。它允许您控制面板布局、菜单项、默认 gconf 设置等内容,并为某些非 GNOME 程序(如 Firefox)提供预定义的默认值。它还利用了 Pessulus 的锁定功能。它通过提供“窗口内的桌面”来实现这一点,允许您根据需要自定义桌面,然后记录您的更改,以便在登录时由 sabayon-apply 程序应用于用户。
另请参阅本文:Linux Kiosk:Ubuntu / Gnome 锁定场景。
答案2
在任何常规的 Linux 发行版上,以单用户模式运行并将您的程序传递给 X 作为唯一要运行的程序(因此不需要像 KDE/Gnome/xfce/whatever 那样的程序就可以了)。
就像是本教程(删除 Firefox 部分并替换您自己的程序)。但搜索 xinit+kiosk 或 xorg+kiosk 会提供大量信息。
当然,还需要采取适当的预防措施,例如禁用对 BIOS 和 GRUB / 引导加载程序的访问,以及拒绝从 usb / lan / cdrom / 软盘启动。