有没有办法防止rm
删除挂载点?
例如,如果我在外部安装了 /mnt/backup 并且有人运行,rm -rf /
我知道它将删除备份内容。
我的解决方案是在备份结束后umount /mnt/backup。
答案1
最佳实践是不仅卸载,还断开备份。
您可能希望您的备份能够在(例如)有人意外下载加密锁的情况下保护您。或者有人闯入(破坏)您的系统。或者奇怪的系统崩溃会损坏文件系统。或者闪电浪涌会烧毁所有插入的电子设备。这样做的某人/某物受到以下限制:
- 权限,如果他们只能访问非 root 帐户(您的备份只能由专用帐户写入)还可以考虑快照之类的东西,您可以在其中使快照只能由 root 访问,但让当前备份可供 root 访问用户。或者将快照设置为只读。
- 未挂载的文件系统,如果不是 root(假设 udisks 之类的东西不允许挂载它)。不过,这几乎总能防止奇怪的崩溃。
- 物理定律,如果你断开驱动器
您必须选择要防范哪些威胁,并权衡成本/不便。
还要记住意外泄露的风险,而不仅仅是意外数据丢失的风险。您还可以拥有多个备份以结合优势。例如,也许您每个月都会更换 USB 硬盘驱动器,现在您可以享受始终连接的便利,但如果有人 root 机器并擦除它,您就可以安全无误地获得上个月的备份。
答案2
rm --one-file-system
应该可以解决问题。
--one-file-system
when removing a hierarchy recursively, skip any directory that
is on a file system different from that of the corresponding
command line argument