我想创建一个 Linux 用户帐户(在 ubuntu 或 debian 或任何更适合此目的的版本中),该帐户除了查看预定网页外无法执行任何操作。有点像 Kiosk 风格,这样用户可以从该网页观察正在发生的事情,但无法执行或写入(并且此阻止最好也通过 GUI 进行,即用户无法最小化或关闭浏览器,无法查看任何“开始菜单”)。我该怎么做?
答案1
该网站提供了一些有关如何按您的需要设置 Linux 的教程。请注意,这些教程可能有点过时了...
我将引用“仅限网站”版本,但请检查网站以获取更多信息。
这是将 Linux 用作信息亭系统的实验的一部分。“信息亭系统”可以表示多种含义,但在这里我们假设它是一台只运行一个应用程序(网络浏览器)的计算机,并且不允许用户执行除使用该浏览器之外的任何其他操作。这样,计算机就可以无人看管,例如在公共场所(公共图书馆等)
为实现此目的,通常采用的方法之一是安装 Windows,然后将其锁定,并向用户提供有限的菜单式用户界面 - 通常使用专门的软件(例如 WinU)。但这有点像浪费资源和金钱:您必须为几乎不会使用的计算机(仅浏览器...)购买 Windows 许可证,此外,您还需支付额外软件费用,使其只能运行该浏览器。因此,我们从另一个角度看待它:这是 Linux 可以做的事情,而不需要过度杀伤?
我们需要什么 ?
要运行 Web 浏览器,我们不需要功能齐全的桌面:一个最小的 x-windows 系统就可以了:我们只需要一个可以运行浏览器的窗口。这种方法也用于 Linux 服务器的“最小 GUI”设置,我们提供了一个 Web 浏览器,以利用图形前端来配置系统。基于这种方法,我们将设置一个基本 Linux 系统(只安装操作系统 - 例如 Debian 3)并添加一些 x-window 组件,以便我们可以运行 Web 浏览器(firefox)。
假设这台计算机无人看管,我们不希望用户去玩弄它,我们绝对不希望用户破解它或试图提升他们的权限或安装他们自己的软件,这样机器就会变成僵尸或其他什么的 - 所以我们拒绝他们访问系统。为此,我们使用“Bastille”。Bastille 是一个程序,可以带您完成锁定系统的操作。(请参阅 Bastille 主页)
最后,我们希望一切都能或多或少地自动运行,所以我们将利用运行级别和启动脚本。
安装软件和基本配置
基础设置我们只安装一个基本系统,然后添加我们需要/想要的软件包。这里使用的操作系统是 Debian 3.0,网络安装。我们添加了 bastille、firefox 和一些来自 x-windows 系统的组件:足以创建窗口并为用户提供 GUI 登录。我们还添加了 ssh 以便 root 进行远程管理,并添加了 vim 以编辑文本文件。
apt-get 安装 x-window-system fvwm vim ssh
系统要求:任何能够运行(文本模式)Linux + xwindows 的 PC。硬盘空间:... mb(系统 + 软件)+ 交换 + 浏览器缓存/临时文件的空间。含义:任何旧 PC 都可以。
创建用户我们创建 1 个用户 (www),密码为 www。此帐户将用于将 PC 用作 Web 客户端。
用户添加-m-s /bin/false-p
mkpasswd www SD
wwwWindows 设置设置 X-windows 意味着您必须提供一些输入(显示器、键盘、鼠标等)。要修改配置:dpkg-reconfigure xserver-xfree86,或编辑配置文件(/etc/X11/X86config-4)。
Windows 环境的配置位于用户的主目录 (~/.xinitrc) 中,如果缺少该目录,则使用系统默认值:/usr/X11R6/lib/X11/xinit/xinitrc(参见 XFree86 HOWTO)。(在 Debian 上)此 xinitrc 所做的只是调用 /etc/X11/Xsession,而后者又引用 /etc/X11/Xsession.d 和 ~/.Xsession 中的文件。在 /etc/X11/Xsession.d 中,我们找到带有 exec $STARTUP 语句的脚本 99xfree86-common_start。假设我们可以将要在 X 中运行的程序放在此处,我们将 exec $STARTUP 替换为“exec firefox”。这样,Firefox 将在 xserver 启动后立即启动,而关闭 Firefox 也会停止 xwindows 会话。
去做 : 阅读 Debian 文档,了解如何配置窗口管理器,并找出所有这些 x11 文件如何相互关联。找到一种方法来强制 Firefox 的高度和宽度。我们希望它全屏显示。“firefox -height 600 -width 800”应该有效吗?解决方法:运行一次 Firefox,配置首选项和窗口 - 下次它将使用这些设置
运行级别现在,您可能会发现您的系统现在提供了图形登录并立即启动 Firefox,这正是我们想要的,只是 root 更喜欢使用命令提示符来进一步设置系统。因此,我们将默认运行级别更改为 3(在 /etc/inittab 中),并在 rc2.d(运行级别 2)中禁用 X 启动脚本。现在,系统将启动到运行级别 3(用户 www 的 GUI 登录和 Firefox 立即启动)- root 可以启动 init 2 以获得命令提示符,无需担心。
奖金既然您现在已经有了 GUI,为什么不包含屏幕保护程序呢?“黑客帝国”就是一个很好的例子。
巴士底狱Bastille 是一个程序,它将引导您完成大量配置设置,以使您的系统更安全。有些与网络有关,例如,它设置了一个防火墙,在网络信息亭的情况下,它只允许传出的 http,并且只接受对传出流量的回复。另一组设置通过“chroot”、修改某些文件系统权限和加强 SUID 的使用来保护系统本身。一项功能对于无人值守的 PC 非常有用:将 (root) 密码设置为运行级别 1(“单用户模式”、“根模式”、“恢复模式”;“维护模式”)。在单用户模式下,可以重置 root 密码,从而以 root 身份登录 - 这对无人值守的计算机来说显然是一种威胁:只需拔掉插头或按下电源按钮,您就可以绕过所有安全措施,即使禁用 ctrl+alt+del 并且只有 root 用户才能关机/重启。
另一点是禁用打印机和/或仅向 root 授予管理打印作业的能力。您必须根据这台 PC 的用途以及 www 用户是否需要打印来确定这一点。在这个锁定的 Ubunto/Gnome 桌面信息亭系统中有一些关于适当设置的详细信息。
答案2
可以使用 SELinux 来实现。Fedora SElinux 策略支持名为 xguest 的特殊来宾用户
xguest 软件包提供了一个 kiosk 用户帐户。此帐户用于保护人们走近并使用的机器,例如图书馆、银行、机场、信息亭和咖啡店的机器。kiosk 用户帐户非常严格:本质上,它只允许用户登录并使用 Firefox 浏览互联网网站。使用其帐户登录时所做的任何更改(例如创建文件或更改设置)都会在您注销时丢失。
请参阅 Fedora 11 安全增强型 Linux 用户指南。