为什么systemd
清除子进程的环境变量?
答案 0 :(得分:2)
此设计可为子进程执行提供更可靠,一致,明确且可能更安全的环境。
考虑这样一种情况:子进程有一个安全漏洞,可以通过设置环境变量来触发,而父进程有一个允许设置该环境变量的缺陷。
正如man systemd.exec中所述,您可以使用Environment=
,EnvironmentFile=
和PassEnvironment=
来明确管理其他环境变量。
通过环境变量控制流程是“远距离行动”设计的一个示例,其中可变全局状态触发应用中远处的变化。因为声明变量的位置不在它们使用的位置附近,所以存在更多混淆,错误和意外行为的机会。这里更加严谨和明确,降低了相关风险。