Quake:为什么运行QuakeII是愚蠢的

我正在查看 Quake II 源代码,发现它们阻止用户以root运行游戏:

我正在查看 Quake II 源代码,发现它们阻止用户以root运行游戏:

/* Prevent running Quake II as root. Only very mad
   minded or stupid people even think about it. :) */
if (getuid() == 0)
{
    printf("Quake II shouldn't be run as root! Backing out to save your ass. If\n");
    printf("you really know what you're doing, edit src/unix/main.c and remove\n");
    printf("this check. But don't complain if Quake II eats your dog afterwards!\n");
    return 1;
}

在 Quake II 中这样做的具体原因是什么?

7

我怀疑他们有没有想到过任何非常具体的代码。很可能只是所有的软件都有错误,以根权限运行软件会使错误更加危险。

但是导致问题的一个很好的候选人是用于创建 mod 的 QuakeC 语言。特别是因为这些 mod 是由用户制作的,并且不受 Id Softwares 的控制。此外,它是一个具有服务器和客户端的网络应用程序。这本身绝对是足够的理由。

因此,原因很可能是 99 % 的以 root 身份开始游戏的人都是错误的,通常没有任何理由以 root 身份运行游戏。

我真的很喜欢这个。我非常喜欢它,我正在考虑在几乎所有未来的代码中使用这个简单的检查。

编辑:

我想举一个例子是个好主意。有很多情况下,以 root 身份执行东西可能会变坏,但是想象一下,程序或游戏在/tmp/mygame中存储了一些临时文件,退出时,程序执行类似于rm -rf /tmp/mygame的内容。现在想象一下,'t'字符由于任何原因(缓冲区溢出,位翻转,某些程序员“测试字符串”)而损坏。

现在,它将执行rm -rf /,而不是执行rm -rf /tmp/mygame

是的,我确实知道您需要添加--no-preserve-root才能使这个特定的示例造成任何损坏,但这不是重点。重点是,如果存在使用 root 访问执行程序可能造成损坏的风险,并且不需要使用 root 访问执行程序来执行它应该做的事情,那么明智的做法是完全阻止它以 root 身份执行。它只是增加了一层额外的安全性。

另一个例子是程序可能感染了病毒,如果是这样的话,你肯定不想以 root 身份执行它。

本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处

(770)
唱吧怎么录mv:mv:“目录不为空”-如何将目录与'mv'合并
上一篇
危房鉴定程序和评定:使用 javascript进行随机星级评定
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(43条)