防止将数据写入未挂载的挂载点目录的可能性

Lon*_*est 37 linux ubuntu backup permissions mount

我有一个 Ubuntu 服务器,每次启动时我都会在其中自动挂载一个外部硬盘驱动器。

为此,我在根分区上创建了一个空文件夹,并将驱动器安装在该文件夹的“内部”。

但是,如果我在驱动器未正确安装时对此路径执行备份怎么办?备份会填满我的根分区!

我可以通过执行以下操作来确保每次都安装驱动器:

sudo mount -a
Run Code Online (Sandbox Code Playgroud)

...在每次备份之前。

但是,确保数据永远不会写入空的挂载文件夹的最佳实践是什么(除非真正挂载了外部硬盘驱动器)?

这可以在没有脚本的情况下解决吗?例如说有权限?最佳做法是什么?

eww*_*ite 59

我更进一步,总是使用chattr将我的挂载点目录的属性设置为不可变的。

这是通过chattr +i /mountpoint(卸载挂载)完成的。

这会在新的写入活动中出错,并在其他情况下保护挂载点。

但我你也可以使用mountpoint 命令;)

  • 这是一个更好的解决方案;它不需要脚本来确保任何东西都不会写入根分区。对我来说,这似乎是一个最佳实践,应该对所有专用于挂载的文件夹进行。 (4认同)
  • 如果您是非root用户,如何确保文件不会写入本地文件系统?您会看到,chattr +i 需要 root 权限,即使您使用 root 执行此操作,此后非 root 用户也无法挂载到此受保护的挂载点。那么非root用户如何实现这一点呢? (3认同)