我怎样才能将“rm -rf /”变成别名?

我怎样才能将“rm -rf /”变成别名?

我想为 创建一个别名rm -rf /。我知道如何创建别名;问题是我不知道如何使用一系列命令为所有命令创建别名。我想要类似 的东西rm -rf / = echo 'something',但仅在使用“/”时才需要。

我怎样才能实现这个目标?

答案1

更好的做法是应用适当的权限来阻止人们删除内容。

通过禁用别名、符号链接rm并以此方式运行、复制rm二进制文件、甚至直接运行,可以轻松覆盖此别名“安全”方法。

当您离开桌面时,应按Ctrl+ Alt+L锁定桌面,以确保桌面安全。

答案2

一个简单的bash函数就可以实现(但是这显然可以被用户覆盖):

rm () { [[ $1 =~ -(rf|fr) && $2 = / ]] && echo "whatever" || command rm "$@" ;}

请注意,即使某些用户这样做rm -rf /,操作也不会继续,因为需要输入--no-preserve-root选项才能rm递归删除根目录。(但没有什么可以阻止人们rm -rf /*这样做cd /; rm -rf *

但是您应该考虑实施良好的安全策略,而不是对敏感内容进行修补。

答案3

这里真正的问题是您的系统安全。与您一起工作的“人”不应该能够这样做,rm -rf /因为这需要 root 访问权限 - 实施更好的安全模型可以避免能力不足的人破坏系统,而且您的rm命令(如果是最新版本)应该实施--no-preserve-root

相关内容