Linux - 自我保护(Root)

Linux - 自我保护(Root)

我热爱 Linux 及其所代表的一切;然而不幸的是,我从小就使用 Windows。因此,我学到了很多不好的做法(例如 NT Authority 会保护我)。我有几个 Linux VPS 用于个人和教育用途,我通过命令行管理它们。通过管理这些服务器,我学到了非常痛苦的教训,了解了 Root 用户的权力。例如:

  • rm-d-R /*
  • chown www-用户:www-用户-R /*
  • ETC。

我只删除过两次我的根目录,但就在上周我更改了整个驱动器的权限 - 有效地锁定了 Root。

现在我知道我永远不应该以 Root 身份登录,但大多数时候我必须处理只有 Root 拥有的文件,所以我使用 sudo 并运行命令。

所以我的问题是,当执行潜在危险的命令时,有没有办法提示用户(root 或 sudo 的用户),以便用户可以重新考虑他们的决定?可能通过 Bash 中的脚本或不同的 sudo 包装器。

或者(我希望问这个问题,并且非常简单)有没有办法设置权限,而不是两层用户系统(根用户,普通用户),而是像 Windows 中的三层系统(NT 权限、管理员、其他用户)。基本上有没有办法保留系统管理的能力,但限制对某些系统文件的访问。

答案1

ls养成在发出递归命令或危险命令之前执行此操作的习惯。然后,您可以在继续之前查看将影响哪些文件。

rm支持-i开关(导致它提示您)以及--preserve-root(导致它在 root 上失败),这应该会给您带来一点安全余地。其他命令可能有类似的选项。您可以让这些始终与命令一起出现alias rm=rm -i --preserve-root,并且可能希望将其放在您的~/.profile命令中~/.bashrc,以便每次调用 root shell 时它都在那里。

答案2

如果你(或系统中的其他人)经常犯这样的系统管理员错误,并且保留数据很重要,那么你可能需要考虑将有意义的数据保存在尼尔夫斯日志结构文件系统存在一些需要注意的安全隐患;例如,真的永久地从磁盘中清除某些内容……但另一方面,从这样的“哎呀”中恢复真的很容易rm -rf /

答案3

SELinux 会执行您所要求的操作,例如阻止rm -rf /*。此外,zshshell 会在执行 之前要求确认rm *,以防止出现 之类的拼写错误rm * .txt

相关内容