任何像“sudo”这样的程序可以通过让两个用户输入密码来获得 root 权限?

Dan*_*mer 6 security root sudo authorization

我运行一个服务器,供一群人用于电子邮件、邮件列表、个人网络主页等。

我考虑了为其他成员提供 root 访问权限以允许他们处理服务器上的问题的方法。但我不喜欢给每个人完全的 root 权限。

两个用户必须按sudo样式输入密码才能打开 root shell的想法怎么样?这将防止单个用户劫持整个服务器。为了提高安全性,可以使用大于 1 的任意数量的所需用户密码。正如我现在看到的,这可能是在一群彼此非常了解并住在附近的人中提供 root 访问权限的好方法。

  • 你知道这样的程序吗?
  • 你对这个概念有什么看法?

Gil*_*il' 6

某些操作需要双重批准是某些安全策略的一部分;例如:

  • 在银行业,非常大的交易通常需要由两名经理进行验证。
  • 发射核武器等重型武器需要两名或两名以上高级官员或决策者的验证。
  • Stack Overflow上批准或拒绝建议的编辑需要两个具有足够声誉的用户同意。

您会注意到,这与身份验证无关(例如,输入密码以显示您的身份),而是关于授权,即决定是否允许某个操作。

对于背景阅读,我推荐罗斯安德森的安全工程。如果可以,请购买最新版本,否则第一版可在线获取。最相关的章节是“访问控制”;关于银行和核指挥的章节中有一些例子。

Unix 提供了一个简单的安全模型,只有两个级别:用户和超级用户。这既是一个优势(简单意味着在系统本身和安全策略的设计和实现中出错的余地更小),也是一个弱点(复杂的安全策略无法在本地表达)。如果您担心流氓用户获得 root 权限,请不要给他 root 权限。很少有关于 root 做什么的检查;唯一的限制是获取 root 的操作可以远程记录,某些外部操作(网络流量)也可以。流氓用户可以假装想要获得 root 权限来做某件事,但实际上却做另一件事,同时向其他用户隐藏他的行为。因此,通过要求其他用户审查 root 访问权限,您不会获得太多安全性。相反,您将通过减少root 访问权限的可用性(我猜你想给不太受信任的用户 root 访问权限,以便在出现问题时作为备份;双重批准会增加很多负担)。

双重批准对于特定操作很有用:爱丽丝说“请授权我做 X”,鲍勃说“我授权爱丽丝做 X”,然后系统执行 X(X 可以例如将 1,000,000,000 美元从一个银行账户转移到另一个,或核莫斯科,或拒绝编辑)。如果爱丽丝说“请授权我做我想做的任何事”并且鲍勃同意,鲍勃所做的一切就是回应你(决策者)已经说过的,即爱丽丝可以被授权做任何事情。你不妨让爱丽丝成为 sudoer。

我不知道 Unix 上有任何现有系统可以让多个用户在类似 sudo 的框架中批准特定命令。


Eig*_*ony 0

我不知道有这样的程序。

我认为总的来说,它是有缺陷的,并且与允许单个用户可信访问有限命令相比,它并没有给您带来更多的安全性。

就我个人而言,我不会向任何我不认识的人授予 sudo 访问权限,即使是命令的子集,因为很容易错过某些内容并授予他们您未预料到的访问权限。

相信他们,或者不相信他们,建立不太信任他们的层并没有帮助。

  • 一个人必须让一个人相信他们是值得信赖的,他们可以滥用访问权限。他们要么必须说服你(你给他们root权限),要么他们必须说服拥有另一半密钥的其他人。在这两种情况下,你都完蛋了,在这两种情况下,他们都说服了一个人信任他们。 (3认同)