程序需要由任何用户以 root 身份运行,并且可以位于任何地方

san*_*urn 2 linux root sudo

我有一些名为 foo 的程序,它在执行时需要 root 权限。foo 需要能够被任何用户运行并且可以位于任何路径。这个程序可以在任何路径上的原因是因为我们公司正在开发程序 foo 并且每个用户在他们工作时可能在某个个人目录中拥有该程序的个人版本。

我的问题是,处理这个问题最安全的方法是什么?我一直在研究 sudoers 文件,基本上有 2 个想法。

1.) 列出程序可以在 sudoers 文件中的所有路径。这是有问题的,因为它需要经常编辑 sudoers 列表,并且仍然存在安全风险,因为非 root 用户将拥有他们自己的 foo 副本,并且可以通过 foo 复制一些系统程序,然后以 root 身份使用它。

2.) 编写一个名为 start_foo 的脚本,它对传递的程序执行一些输入验证,例如大小和名称,然后启动传入的 foo。start_foo 可以存在于 /usr/bin 中并由 root 拥有,但任何人都可以运行。这个选项仍然包括能够用另一个需要 root 的程序覆盖用户 foo 程序的安全漏洞,但希望大小检查能捕获一些恶意案例。

有没有一种“规范”的方法来解决这个我没有发现或想到的问题?如果不是,以上哪一个或可能的其他解决方案是处理问题的最佳方法?

谢谢!

Kat*_*ard 5

处理它的最安全方法可能是为每个开发人员提供他们自己的小型开发/测试环境,也许是一个虚拟机。这样,他们只能打破自己的开发实例。