如果有人从 /etc/environment 中删除了 PATH 变量,会发生什么情况?

如果有人从 /etc/environment 中删除了 PATH 变量,会发生什么情况?

目前,我们发现向远程 Ubuntu 服务器添加 API 密钥的最佳方法是将其编辑为环境变量etc/environment。不幸的是,该项目的基础设施文档已随时间而丢失。

在该etc/environment文件夹中,PATH设置了系统范围内使用的变量。如果有人在尝试添加另一个环境变量时意外覆盖了此变量,会发生什么?损害是否会很大,以至于这样做会导致机器处于不可恢复的状态?

答案1

如果有人在尝试添加另一个环境变量时意外覆盖此变量,会发生什么?

您将无法再轻松启动安装在不同寻常位置的程序 - 您需要使用完整路径来运行它们。


始终存在由多个组件(由服务的初始化系统、由交互式会话的登录处理程序)设置的默认 PATH 值,尽管不同的 Linux 发行版会根据自己的需要对其进行调整,但默认值始终适合基本系统启动并让您登录。

(首先在 /etc/environment 中包含 PATH 的唯一原因是如果你需要额外的目录 – 例如,一些安装在 /opt 或 /u1 中的软件不是通过发行版的常规打包安装的。)

如果全局 PATH 设置以其他方式损坏,但您可以设法通过 SSH 或控制台登录,则仍然可以通过其完整路径运行可执行文件(例如/bin/sudo)。而且由于环境变量在技术上不是全局的,而是按进程复制的,因此您可以在尝试修复问题时仅为该 shell 设置它。

损害是否会很大以至于导致机器处于不可恢复的状态?

只要您有物理或 KVM 访问权限,Linux 系统几乎总是处于可恢复状态。大多数启动过程实际上并不完全依赖 PATH,并且有几种方法可以中断它并获取恢复根 shell,您可以从中重新编辑文件。

相关内容