我在外壳中看到建议,我不应该把芹菜当作根,这是"绝对不推荐的!"。
有人能解释一下吗?
这是最小特权原则(PoLP([wiki]的一个具体例子:
(…(最小特权原则(PoLP,也称为最小特权原则或最小权限原则(要求在计算环境的特定抽象层中,每个模块(如进程、用户或程序,具体取决于主题(必须只能访问其合法目的所需的信息和资源。
如果你允许你的芹菜根访问,这意味着它可以访问许多强大的工具:它可以删除系统配置,擦除整个文件系统,安装新软件,甚至操作硬件等。
将芹菜作为根运行可能会导致几种不安全的情况。例如,如果黑客成功地在某个地方"注入"了代码,它可以等到芹菜运行该代码,例如创建一个具有预定义密码的用户,然后就可以访问机器。当然,设法将代码存储在某个地方,以便运行芹菜是另一个挑战,但通常最好始终假设所有系统在某种程度上都是不安全的,因此给予这些根访问权限,肯定不会有利于安全性。维基百科的文章中也提到了这一点:
(…(例如,微软表示"在标准用户模式下运行,可以为客户提供更高的保护,防止"粉碎攻击"和恶意软件(如根工具包、间谍软件和检测不到的病毒(造成的系统级无意损坏"。
当然,如果黑客设法注入代码,这仍然会造成很大的损害,因此以非root用户身份运行芹菜进程是不够的。通常,与只能访问文件和其他真正需要的资源的用户一起运行流程也很有用。例如,只有用于它必须执行的进程的python文件。