我遇到过一些由于挂载失败而将文件写入挂载点的情况。
有没有简单的方法来检测这样的文件(可以轻松自动化)?
(我知道可以使用类似以下命令将文件系统挂载到新的挂载点:
mount --bind / /tmp/tmp
然后在所有挂载点中查找文件。
但我希望有更快的方法
答案1
将来,您可以运行chattr +i /mountpoint
(卸载挂载点)。这会将挂载点的目录更改为不可变。结果是您会在新的写入活动上出错。它还可以在其他情况下保护挂载点。
答案2
俄斐,
我不知道如何实现你的要求,但我确实有建议给你:)
准备挂载点时,请将其权限设置为尽可能严格的掩码。将文件系统挂载到挂载点,并将挂载点(已挂载文件系统)的权限设置为所需的集合。让我举例说明:
# mkdir -m0 /mnt/mountpoint
# mount -t ext4 /dev/sdb1 /mnt/mountpoint
# chown -h user:group /mnt/mountpoint
# chmod 0750 /mnt/mountpoint
问题是文件系统保留了所有者/权限信息,因此每次挂载该文件系统时,挂载点都会从挂载的文件系统继承所有者/组/权限。
此技巧可能有助于您保护文件系统并轻松检测未挂载的情况。如果您的应用程序在 root 下运行,它将能够写入权限设置为 000 的目录,但这是一个很好的检查(检查挂载点的权限),可以意识到我们正在写入错误的位置。
我希望这个能帮上忙。
PS@ewwhite 提供了一个更好的选择,即使用“chattr +i”来保护挂载点,而不是将其设置为“chmod 0”。