目前认为游戏组的正确/推荐/最佳实践使用是什么......
作为游戏端口和操纵杆的“设备组”,与游戏用户无关(除了是游戏用户可能必须属于的众多组之一),并且具有(非常)不同的 GID游戏用户的UID...
或者作为与游戏用户的“配对”——最好具有匹配的 UID 和 GID——其中组列出允许执行属于游戏用户的程序的用户。这是为了限制用户可以享受的内容。
还有其他选择吗?您见过或认为适用于游戏端口和操纵杆设备组的其他名称;对于允许玩的一组用户;和/或运行游戏的用户? (例如“rec”表示休闲)您认为这可能是个好主意还是太打破传统了?
我正在考虑构建/定制我自己的发行版,所以我不会被其他发行版如何做或最常见的东西所困扰......我更想知道你所看到的,你所经历过的尝试过以及您认为最有效的方法。
我也对其他 Unices 用户的此类体验感兴趣,毕竟他们中的大多数人不会像 Linux 那样频繁地损坏他们的设备......他们还有游戏组吗?它的使用方式和用途是什么?
答案1
在决定用户和组的作用之前games
,您应该先弄清楚为什么要拥有不同的用户。游戏与哪些特殊权限相关?
- 运行游戏。除了拥有 shell 帐户之外,通常不需要任何权限即可运行游戏。如果您限制用户运行您已安装的游戏,他们仍然可以自行安装这些游戏。
- 访问游戏硬件。硬件设备很少是特定于游戏的:您可以在游戏端口上插入 MIDI 键盘,使用操纵杆来控制物理对象,……
- 参与多用户交互——主要存储高分。如果您不希望用户能够使用任何编辑器或实用程序编辑高分文件,则需要以提升的权限运行游戏。
- 安装和维护游戏程序。
很少有与运行游戏和访问游戏硬件相关的访问控制(可能有对游戏外围设备的访问控制,但并不特定于它们用于游戏)。与高分文件和游戏程序安装相关的访问控制是很常见的。
让游戏程序设置 setuid 是一个坏主意。大多数游戏的设计都没有考虑到安全性,运行游戏的用户通常可以通过某种方式修改任意文件,甚至使用游戏提升的权限运行命令。如果游戏可执行文件是 setuid,则允许运行游戏的用户修改游戏可执行文件并将其变成木马,然后该木马可以感染运行游戏的任何其他用户。
因此,拥有游戏可执行文件的用户不得用于控制谁可以运行它们、使用外围设备或编写高分文件。它可用于控制谁可以安装游戏。如果您有一个games
用户,它的用途将是允许游戏管理员对用户game-administrators
(一个更明确的名称)进行 sudo/usr/games
并/usr/local/games
维护game-administrators
.这样的游戏管理员可以获得任何玩这些游戏的用户的权限,因此游戏管理员权限应该只授予值得信赖的人。
要控制对高分文件的访问,可以将它们归一个组所有,该组可以(并且通常)称为games
。然后,具有共享高分文件的游戏将被设置为 setgid games
。games
除了拥有高分和类似交互文件以及游戏可执行文件之外,请勿将该组用于任何其他用途。特别注意,游戏可执行文件不得由该games
组写入:它们必须具有权限rwxr-sr-x
(2755)。设法利用 setgid 游戏中的漏洞的用户将能够修改高分文件,但不会造成其他危害。
如果您希望限制某些用户对游戏的访问,请创建一个game-players
组,并使包含游戏的目录只能由该组访问,即 make /usr/local/games
(或游戏所在的任何地方)由game-administrators:game-players
和模式rwxr-x---
(750) 拥有。