我之前发生过一次rm事故,我想cd ..然后rm -rf *,结果手快了..没打出来,对我的个人文件产生了毁灭性的打击,在那之后我开始用trash,并且用alias屏蔽了rm。
但是最近产生了新的问题,我发现我的opencode不受alias设置的影响,它仍然可以使用rm,虽然因为我的设置,它在运行bash命令前会请求许可,但是以防万一,我还是想找一个好的方案,能够屏蔽所有rm命令,只有sudo rm或者以root执行rm能生效。
我之前发生过一次rm事故,我想cd ..然后rm -rf *,结果手快了..没打出来,对我的个人文件产生了毁灭性的打击,在那之后我开始用trash,并且用alias屏蔽了rm。
但是最近产生了新的问题,我发现我的opencode不受alias设置的影响,它仍然可以使用rm,虽然因为我的设置,它在运行bash命令前会请求许可,但是以防万一,我还是想找一个好的方案,能够屏蔽所有rm命令,只有sudo rm或者以root执行rm能生效。
btrfs快照。我每小时打一个。你不放心每分钟打一个也行。
另外我的能与环境交互的LLM全部跑在虚拟机/容器里,它直接整个地扬了也问题不大。
说句题外话,这本书有在线版的:
不建议这样做(原因上面给了),但是:
echo "export PATH=$HOME/.local/bin:$PATH"
echo -e "#!/usr/bin/bash\necho" > ~/.local/bin/rm
chmod +x ~/.local/bin/rm
然后恭喜你,你获得了一个什么都做不了的 rm,不过缺点是你要 sudo 的话,那就只能 sudo /usr/bin/rm 了
现在默认的 sudoers 配置文件会使用硬编码的 PATH 而不是继承调用方的 PATH