7. 多人生活

让所有人使用同一台机器会让你的用户有更多的机会互相干扰。尽管 Unix(以及 Linux)从一开始就被设计成多用户系统,但可用资源始终是有限的,一个用户占用过多资源会惹恼所有人。他们都会来找你,说这是你的错。

7.1. 共享资源

你最头疼的问题之一可能是 CD-ROMCD-R/W。理论上,它们应该像其他所有东西一样放在模拟大型主机上,但这会产生很多问题。你的用户需要能够实际接触到机器才能放入 CD,从安全角度来看,这可能不是一个好主意。一旦 CD 放入驱动器,你可能会遇到不同的人尝试挂载、卸载或弹出它,如果他们无法做到就会感到沮丧。读取 CD(例如使用cdparanoia)可能会干扰多媒体程序,并导致音轨跳过。刻录 CD 情况更糟,因为它需要系统在一定不间断的时间内保持专注。如果你的机器上只有一个处理器,而其他用户在刻录过程中决定做一些密集型操作,写入可能会失败,有人会非常沮丧,因为他刚刚损失了一张空白 CD。

你可以做的一件事是将 CD-R/W 移动到一台专用支持机器(刻录机)上,该机器不做其他事情。可以使用 Jörg P. M. Haeger 的 http://joerghaeger.de/webCDwriter webCDwriter 来设置这样一台机器。它有一个用 Java 编写的图形界面,可以在任何装有 Java 虚拟机的操作系统下运行。这保留了封装原则。确保刻录机上没有任何你不能承受系统被入侵后使用的东西。当然还有其他更原始的方法:你可以通过 NFS 导出用户的家目录,但这正是我们试图避免的事情。或者让用户将 CD 创建为 ISO 文件镜像,然后让他通过sftpscp将其发送到支持机器。然后用户可以走到机器旁手动刻录。

在家庭环境中,这些可能都不是问题。对于更大的配置,特别是对于不受信任的用户,这可能是一个大问题。你最终可能会告诉所有人,他们不能在这台系统上刻录 CD,永远不行。

其他资源的问题较少。传统上,你使用 配额 设置来限制任何单个用户可以使用的磁盘空间量。随着硬盘每月变得越来越便宜,这已经不是什么大问题了,但根据你的用户群,你可能会考虑安装非常大的配额以确保安全。然而,用户很容易对配额的概念感到不满,尤其是当他们在大部分硬盘仍然空闲的情况下达到配额限制时。

7.2. 屏幕保护程序和其他花哨的东西

屏幕保护程序的最初目的是防止屏幕上显示的内容在你离开去饮水机时烧坏显示器的荧光粉涂层。然而,很快,巧妙、可爱和复杂的屏幕保护程序本身就成了一种目的。今天的屏幕保护程序变得如此消耗资源,以至于有些实际上需要你拥有某些类型的硬件(如 OpenGL 支持)才能运行。

如果你有一个带有 X Windows 的模拟大型主机,你可以肯定你的每个用户都会设置一个屏幕保护程序,它将系统测试到极限(只是为了好玩,一旦你设置好一切,登录到连接到大型主机的每个终端,让每个终端运行不同的屏幕保护程序。观察你这样做时的系统负载。尽量不要大声尖叫)。更糟糕的是,像 KDE 这样的一些桌面环境允许用户设置屏幕保护程序的优先级。其想法是用户可以设置低优先级,但实际上,他们会提高优先级,直到他们的跳跃的 OpenGL 球不再卡顿为止。

用户认为玩弄他们的屏幕保护程序是他们基本的计算机权利之一,因此仅仅阻止除“空白屏幕”模式之外的所有内容可能会导致人们带着干草叉和火把出现在你的办公室。解决这个问题的一种方法是在屏幕保护程序周围放置一个包装器,以确保优先级设置为低。例如,如果你的设置使用xlock命令作为屏幕保护程序,你可以将其移动到xlock.real然后创建一个名为xlock:

        #!/bin/bash
        nice -19 xlock.real "$@"

这是一个非常粗糙的脚本,但你明白了重点。这让你的用户保留他们心爱的屏幕保护程序,但确保性能下降不会对整个系统造成致命影响。

7.3. 空闲终端

用户另一个令人恼火的习惯是离开他们的终端,但仍然保持登录状态。KDE 和 Gnome 在他们的“注销”按钮旁边都有一个“锁定屏幕”按钮,但你可能很难让你的用户使用它,至少在第一个人发现有人玩弄了他的电子邮件帐户之前是这样。

处理这个问题的一种方法是让系统使用空闲守护程序关闭废弃的终端,这应该包含在你的发行版中。谨慎使用它:如果你在用户屏幕上仍然有一些未完成的信件时强制他们退出系统,他们不会喜欢的。程序xautolock可以设置为在 X 会话空闲配置的时间后调用屏幕保护程序或其他程序。