13.7.多用户 FreeBSD 与 WINE
最后更新于
最后更新于
像大多数 UNIX® 类操作系统一样,FreeBSD 设计上能让多个用户同时登录并进行工作。另一方面,Windows® 是多用户的,但其多用户的意义在于,系统上可以设置多个用户账户,但期望的是在任何给定时刻,只有一个用户使用物理机器(桌面或笔记本电脑)。
最近的消费版 Windows® 已采取了一些措施以改善多用户场景下的操作系统体验,但它仍然主要围绕单用户体验构建。此外,WINE 项目为了创建兼容的环境所采取的措施意味着,与 FreeBSD 应用程序(包括 WINE 本身)不同,WINE 更像是这种单用户环境。
因此,每个用户将不得不维护自己的配置集,这可能是好的。然而,对于安装应用程序,尤其是大型应用程序,如办公套件或游戏,最好只安装一次。这样做的两个原因是:维护(软件更新只需要应用一次)和存储效率(没有重复的文件)。
有两种策略可以最小化系统中多个 WINE 用户的影响。
如本章关于 WINE 配置的部分所述,WINE 提供了将额外的驱动器附加到特定前缀的功能。通过这种方式,可以将应用程序安装到公共位置,同时每个用户仍然可以保持自己的前缀,其中可能保存特定的设置(具体取决于程序)。如果需要共享的应用程序较少,且它们是那些只需少量自定义调整就能正常运行的程序,这种设置是一个不错的选择。
按以下步骤将应用程序安装到公共位置:
首先,在系统上设置一个共享位置以存储文件,例如 /mnt/windows-drive_d/。创建新目录的步骤可以参考 手册页。
接着,为这个新目录设置权限,只允许希望访问该目录的用户。一种方法是创建一个名为 "windows" 的新组,并将所需的用户添加到该组中(请参见 章节的关于组的部分),然后将目录的权限设置为 770
( 章节介绍了该过程)。
最后,使用 winecfg
将该位置添加为用户前缀中的一个驱动器,方法如本章上面的 WINE 配置部分所述。
完成这些步骤后,应用程序可以安装到该位置,并使用分配的驱动器字母(或标准 UNIX® 风格的目录路径)运行。然而,如上所述,只有一个用户可以在同一时间运行这些应用程序(这些应用程序可能正在访问其安装目录中的文件)。一些应用程序在非所有者的用户(即使该用户是具有完全“读/写/执行”权限的组成员)运行时,可能会表现出意外的行为。
另一方面,如果需要共享许多应用程序,或者这些应用程序需要特定的调优才能正常工作,可能需要采用不同的方法。在这种方法中,专门为存储 WINE 前缀和所有已安装的应用程序创建一个完全独立的用户。然后,单独的用户将被授权使用 命令以该用户身份运行程序。结果是,这些用户可以像平常一样启动 WINE 应用程序,只不过它会像由新创建的用户启动一样,因此使用的是包含设置和程序的集中维护的前缀。为此,可以执行以下步骤:
使用以下命令(作为 root
用户)创建一个新用户,该命令将引导你完成所需的详细信息:
输入用户名(例如 windows)和全名("Microsoft Windows")。然后接受其余问题的默认值。接下来,使用二进制包安装 sudo
工具,方法如下:
安装完成后,编辑 /etc/sudoers
文件,按如下方式配置:
这些更改的结果是,User_Alias 部分列出的用户可以使用 Cmnd Alias 部分中列出的程序,并以文件最后一行中列出的用户身份运行它们,也就是说,指定为 WINDOWS_USERS 的用户可以像 windows 用户一样运行 WINE 和 winecfg
应用程序。作为附加好处,此配置意味着它们无需输入 windows 用户的密码。
接下来,为 windows 用户提供对显示的访问权限,因为 WINE 程序将以该用户身份运行:
此命令应当添加到登录时或默认图形环境启动时运行的命令列表中。完成上述所有步骤后,配置为 WINDOW_USERS
的用户可以使用以下命令运行程序,使用共享前缀:
值得注意的是,多个用户同时访问此共享环境仍然存在风险。然而,还可以考虑到共享环境本身可以包含多个前缀。通过这种方式,管理员可以创建一个经过测试和验证的程序集,每个程序集都有自己的前缀。同时,一个用户可以玩游戏,而另一个用户可以使用办公程序,无需冗余的软件安装。