从一个笨手笨脚的管理员那里保护远程 *nix 安装的推荐方法是什么?

kil*_*ist 6 linux administration

偶尔(通常是很长一段时间),我在执行一个完全搞砸 Linux 机器的命令时遇到困难。

最近,我不小心再次安装了根分区(认为这是我刚刚格式化的新 USB 驱动器),然后继续递归地将分区 chown 给自己(再次,只是试图授予自己用户访问 USB 驱动器的权限) )。一旦我意识到我做了什么(在进行中),我就放弃了它,但损害已经造成。许多核心程序不再是 root 拥有的,因此机器基本上处于僵尸状态。一些用户功能(ssh、rsync)仍然有效,但管理级别的东西被完全锁定。无法挂载、卸载、重新附加到屏幕会话、重新启动等。

如果机器和我一起在客厅里,“修理”它(重新安装)会很容易。但事实并非如此。它在我弟弟的家里。他对我带他进行维修/重新安装并不感兴趣,我理解这一点。所以,我将在几天后修复我所做的损坏(并希望安装一些更能抵抗管理员螺丝钉的东西)。

我说这一切是为了问一个问题:针对管理员的反抗强化安装的推荐方法是什么?

未考虑或考虑并迅速下降的事项:

  1. 加强管理员不执行愚蠢的命令:一个好主意,但行不通,因为作为一个人,我偶尔会做一些事后我意识到这是一个坏主意的事情。我想要做的是提前考虑自己,所以当我做一些愚蠢的事情时,机器会拒绝,我会意识到“哦,废话!那可能很糟糕(TM)!我们不要那样做再次。”

我考虑过的事情:

  1. 以只读方式挂载根分区:将保护根目录免受更改,如果预期部分可写,而并非可写,这可能会产生负面影响。也不一定能保护分区免于以读写方式再次安装在其他地方。
  2. 使用某种压缩的只读根映像,上面有一个类似联合的可写层,这样就不会真正对 root 进行任何更改,并且重新启动会清除任何错误:如果不需要更改,这将是好的/好的成为 root,也许 /etc 可以从其他地方的持久文件中重新加载/填充。
  3. 将 btrfs 与常规(可能是每天)快照一起使用,以便在发生错误时更容易恢复:可能仍然不是最佳的,因为它需要用户直接干预,而且我不知道我可以让其他人完成回滚 oops 的更改。
  4. 使用更“实时”/“嵌入式”的 Linux/BSD 发行版,而不是更通用的发行版,设计时更考虑稳定性/可预测性/安全性

就目前情况而言,我可能会使用选项 4 来安装一个比我一直使用的完整 Debian 安装更有限的系统。但作为一个文件服务器和 torrent 客户端,它应该可以正常工作,而作为一台远程机器,保护机器免受我自己的攻击是一项相当大的资产。

bah*_*mat 18

残酷的事实是,没有什么可以保护你免受自己的愚蠢。没有 DWIM(按我的意思做)界面。计算机无法区分什么是有意的,什么是偶然的。无论您在错误的杂散命令上堆放了多少抽象,都可以摧毁它。

简单的答案是放慢速度并注意你正在做的事情

  • 不要做任何假设,有一个健康的偏执,发出像你的生命依赖它们一样的命令,在你按下 Enter 键之前完全暂停并*思考*关于命令及其副作用。并在这不可避免地无法保护您时进行备份。 (2认同)

Gil*_*il' 10

在虚拟机中运行您的安装。拍摄已知良好状态的快照。在做任何有风险的事情之前拍摄快照。在宿主环境中几乎什么都不做。如果您搞砸了,请连接到主机环境并恢复快照。

  • *在主机环境中几乎什么都不做。* 如今,没有多少不支持虚拟化的处理器仍在运行,而且 RAM 也不是很贵。 (7认同)